Design Patterns Flashcards
Design Patterns
soluções comuns para diversos problemas
N-tier /N-layer(arquitetura em camadas)
Apresentação(web), Applicação(APP) e Data(MySQL)
Arquitetura Mult-tentant
Único sistema para diversos tipos de usuários que fazem parte de organizações diferentes
Quais são as maneiras de separar diferentes usuarios na arquitetura mult-tentant
- Por banco de dados diferentes;
- Por tabelas diferentes;
- Por PK mas na mesma tabela;
O que é aplicação stateless?
Aplicação que não armazena estados, mais fácil de escalar;
O que é aplicação stateful
Aplicação que armazena estados;
Serveless
Aplicação que não fica disponível o tempo todo mas somente quando é necessário a utilização. Não precisa focar em servidores é pago sob demanda;
Microsserviços
são sistemas que normalmente têm responsabilidades específicas e essas responsabilidades podem ser projetos totalmente diferentes dentro de uma organização.
O que é acoplamento?
Fazer um microsserviço depender de outro diretamente
Uma forma de evitar acoplamento?
Um banco de dados por microserviço
Qual a melhor forma de microsserviços se conversarem?
Através de eventos;
Vantagem de microsserviço?
Principal motivação: Organizacional melhor para trabalhar em equipe, se cada equipe tem seu próprio microserviço;
Escalabilidade: Se uma área do sistema precisar de mais acesso posso escalar somente o microsserviço não a aplicação todas;
Separação de responsabilidades;
Diferentes técnologia;
baixo acoplamento;
Complexidade de microserviço
- Precisa de uma organização madura;
- time maduro;
- Deployment
- Observabilidade fica mais complexo;
CQRS(Command Query Responsability Segregation)
Separação de escrita e leitura;
O que é comand stack?
É uma camada, uma área da minha aplicação onde eu tenho apenas mudanças de estado na minha aplicação. Area apenas para gravação.
O que é Query stack?
Área apenas de busca;
Time base Invalidation
Invalidação por tempo.
LRU( Least Recently Used)
deletar o cache que foi utilizado de forma menos recente
MRU(Must recently used)
deleta a versão mais recente.
LFU(Least frequently used)
Versão com menos acesso não importa se é recente ou não.
Write through invalidation
cache e banco de dados atualizados em conjunto
Write-back Invalidation
Da prioridade de salvar no cache primeiro depois no banco de dados;
Distributed locking
Servidor gerenciador de locks aparte do sistema. Zookeeper