Introdução
A idéia é armazenar os eventos gerados pelo domínio e que, mais tarde, será reconstruído o estado atual do objeto em questão.
Conceito
Salvando objetos
- Criar um evento para cada estado do objeto
- BankAccountCreated (id: 123 owner: John Doe)
- DepositPerformed (accountId: 123 amount: 20USD)
- OwnerChanged (accountId: 123 newOwnerId: 234)
- WithdrawalPerformed (accountId: 123 amount: 10USD)
- Deve-se preservar a ordem dos eventos
Framework
- Eventuate – Solução que provê um modelo de programação orientada a eventos.
- Fonte: http://eventuate.io/
Exemplos