DEV Community

Discussion on: Event Sourcing Parte 4: Domain Events

Collapse
 
ljtfreitas profile image
Tiago de Freitas Lima

Oi @Willian, obrigado pela resposta. Hã, olhando em retrospectiva talvez eu devesse ter lido os artigos anteriores primeiro (kkk). Minhas desculpas e obrigado por responder. Sobre a sua diferenciação de eventos que disparam outros processos (e os que não) e eventos que são armazenados (e os que não), creio que entendi o seu ponto, embora pense se isso não criaria uma complicação de design no código 🤔, porque um evento representa uma mudança de estado; e os fluxos subsequentes do programa (disparar um novo processo, como você comentou) dependem dos acontecimentos/mudanças de estado das entidades no programa. E então se diferenciarmos eventos que disparam, digamos, "outras" mudanças e os que só servem para tracker o estado talvez o próprio design se tornasse confuso. Mas é interessante, já que o propósito do event sourcing é de fato tracker as mudanças de estado através de eventos e não disparar mais mudanças; isso é apenas algo que as pessoas decidiram fazer hehe. Então por outro lado ter esses dois conceitos separados como você demonstrou é interessante. Sobre o exemplo do carrinho, acho que só comentei porque o exemplo me pareceu estranho (baseado unicamente na minha experiência pessoal, é claro 😆), mas de todo modo está bem encaixado com o restante da explicação e não é um problema. Novamente obrigado! :)

Thread Thread
 
wsantosdev profile image
William Santos

Fala, Tiago! Não precisa agradecer, é um prazer conversar por aqui.

A diferenciação entre os eventos dos modelos e os eventos de domínio é algo que entendo fundamental, e por dois motivos:

1) Trazer clareza sobre o propósito de cada evento – e aí discordo que a separação adicione complexidade, porque na verdade evidencia a natureza de cada tipo de evento;
2) Evitar que eventos que não sejam relevantes para o domínio sejam disparados inutilmente – algo que geraria um tremendo desperdício de recursos, uma vez que a tendência é haver muito menos eventos de domínio que eventos do modelo.

Como são conceitos diferentes, precisam existir isoladamente.

Espero que acompanhe os próximos artigos, já estamos próximos do fim da série!

Abraço. :)