Event sourcing
Um padrão em que todas as mudanças são armazenadas como uma sequência imutável de eventos, em vez de simplesmente salvar o estado atual. O estado atual é derivado reproduzindo os eventos. Garante histórico completo, auditoria e a capacidade de "viajar no tempo".
Ideia: em vez de UPDATE conta SET saldo = 100, você armazena eventos ("DepositoRealizado 50", "SaqueRealizado 20") → o saldo é a soma dos eventos. Ganho: histórico de auditoria completo de graça, capacidade de reconstruir o estado em qualquer ponto no tempo e de construir novas visões depois do fato reproduzindo o log. Costuma andar junto com CQRS (modelos separados de leitura e escrita) e "projeções" (visões materializadas do fluxo de eventos). Contrapartida: complexo — evolução de schema para eventos antigos, snapshots necessários por desempenho, consistência eventual entre os modelos de escrita e leitura. Caso de uso: finanças, e-commerce, domínios em que o "porquê" e o histórico são centrais (DDD). Ferramentas: EventStoreDB, Kafka como log.