O documento discute event sourcing, que organiza o domínio de um sistema em uma cadeia de eventos. Event sourcing permite reconstruir o estado atual de uma entidade a partir de uma sequência de eventos passados e fornece vantagens como debug de sistemas em produção e geração de relatórios. Ele também pode ser combinado com CQRS, onde comandos e consultas são separados, permitindo que consultas sejam otimizadas para leitura. Projections podem ser usadas para gerar views consistentes a partir dos event streams.
7. Globalcode – Open4education
O Problema de “Memória”
Um exemplo…
E se o custo do
Produto for
atualizado entre o
Bloqueio e a
Análise?
8. Globalcode – Open4education
O Problema de “Memória”
Id Custo Preço Venda
2 10.00 14.00
Id Pedido Produto Qtd Preço
10 1 2 3 12.32
12% de Desconto
Tabela de Produtos
Tabela de Itens de Pedido
9. Globalcode – Open4education
O Problema de “Memória”
Id Pedido Produto Qtd Preço
10 1 2 3 12.32
12% de Desconto
Id Custo Preço Venda
2 13.00 18.20
Tabela de Produtos
Tabela de Itens de Pedido
10. Globalcode – Open4education
O Problema de “Memória”
Id Pedido Produto Qtd Preço
10 1 2 3 12.32
Id Custo Preço Venda
2 13.00 18.20
32% de Desconto
Tabela de Produtos
Tabela de Itens de Pedido
12. Globalcode – Open4education
O Problema de “Memória”
Compreensão de Computações Passadas
Debugging de Código em Produção
Geração de Relatórios e Estatísticas
13. Globalcode – Open4education
O Problema de “Memória”
Logs
São desacoplados do código
Não traduzem para um estado do Sistema
Não são user-friendly
Alterar código
Previsão x Reação
18. Globalcode – Open4education
Event Streams
Eventos antigos nunca são alterados
Eventos novos são inseridos no final
Evento EventoEventoEventoEvento
19. Globalcode – Open4education
Event Streams
Eventos antigos nunca são alterados
Eventos novos são inseridos no final
Enganos são corrigidos com Eventos de compensação
Evento EventoEventoEventoEvento Evento
Val: +10
Evento
Val: -10