Qual é a diferença entre Event Driven e Event sourcing?


13

Estou estudando DDD (Domain driven design) e deparei-me com termos: Event Driven e Event sourcing. Sei que é sobre publicar eventos do produtor ao consumidor e armazenar o log, então minha pergunta é:

Qual é a diferença entre Event Driven e Event sourcing?

Respostas:


15

O termo arquitetura orientada a eventos é usado para qualquer tipo de sistema de software que se baseia em componentes que se comunicam principalmente ou exclusivamente por meio de eventos. Por exemplo, quase qualquer estrutura principal de GUI em qualquer plataforma popular usa mecânica orientada a eventos. O termo "evento" geralmente significa "notificação" neste contexto.

Origem do evento é um termo muito mais especial, referindo-se a sistemas nos quais todo o estado do aplicativo é armazenado como uma sequência de eventos. Uma classe popular bem conhecida de exemplos são os sistemas de banco de dados transacional, que armazenam quaisquer alterações de estado em um log de transações. Aqui, o termo "evento" se refere mais a "mudança de estado", não apenas a "notificação".

Portanto, qualquer sistema que use a "fonte de eventos" como sua mecânica principal pode ser visto como também um sistema acionado por pares, mas o oposto não é verdade em geral.


Votou com sua resposta. Estou pesquisando isso agora e encontrei sua resposta primeiro. Observando a frase "todo o estado do aplicativo é armazenado como eventos de sequência", parece que você está dizendo o seguinte: "O estado do aplicativo não persiste diretamente em sua forma atual. Em vez disso, cada operação de criação, atualização ou exclusão executada em um objeto ou modelo é considerado um 'evento' e são esses 'eventos' que são diretamente persistentes. Portanto, para obter o estado atual de um objeto, é necessário repetir esses eventos para reconstruir uma cópia dele. " Este som está correto?
Panzercrisis 26/02

1
@ Panzercrisis: Eu deveria ter escrito "Event Sourcing armazena todas as alterações no estado do aplicativo como uma sequência de eventos". (como Fowler). Todos os objetos geralmente têm um estado "atual", esse estado também pode ser persistido (talvez adiado), bem como a própria sequência de eventos. Eu recomendo ler o artigo de Fowler para uma explicação completa.
Doc Brown
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.