devterview_$ iniciar simulação

CQRS e event sourcing: o que são e quando não usar

DifícilSêniorPadrões arquiteturais

Pergunta

Explique CQRS e event sourcing, e por que geralmente é um erro adotá-los como padrão numa aplicação nova.

Resposta esperada

CQRS (Command Query Responsibility Segregation) separa o modelo de escrita do de leitura — comandos alteram estado, queries leem de um modelo otimizado pra leitura (às vezes um banco diferente). Event sourcing guarda o estado como uma sequência de eventos imutáveis (o estado atual é a soma dos eventos), não como uma linha que você sobrescreve. Juntos permitem auditoria total, projeções de leitura sob medida e escalar leitura e escrita separado. Por que evitar por padrão: adicionam complexidade grande — consistência eventual entre escrita e leitura, versionamento de eventos, replay, ferramental — que só compensa em domínios com requisito real de auditoria/temporalidade ou assimetria extrema de carga. Pra um CRUD comum, é over-engineering que atrasa tudo.

Por que perguntam isso

Pergunta sênior. O que separa: reconhecer que são ferramentas de nicho (auditoria, temporalidade, carga assimétrica) e nomear a complexidade que trazem, em vez de vender como 'arquitetura moderna'.

#cqrs#event-sourcing#over-engineering
publicidade

Relacionadas