Evento de Abastecimento e objetos de dicionário
-
27-09-2019 - |
Pergunta
Como evento de abastecimento pode ser combinado com vários tipos de dicionário de objetos, como Country
, Region
, Time Zone
etc.e o dicionário tipos de determinado modelo de domínio, como Budget
ou Availability
definições.Alguns dos objetos de dicionário deve ser possível editar na INTERFACE do usuário do administrador, mas alguns não.
Por exemplo, nós decidimos que não precisamos de INTERFACE de administração para os países.Assim, não precisamos implementar AddCountry
/RemoveCountry
comandos.
Eu deveria gerar conjunto de CountryAdded
eventos i.e.devo persistir objetos de dicionário como fluxo de eventos? Nós nunca use fonte de verdade e outros, em seguida, a sequência de eventos?
No caso de eu ir sem fluxo de eventos para objetos de dicionário, como você vai resolver esse problema:
Visualizar a lista de países com o número de usuários em cada país.
Neste caso de eu precisar de representação de Country
objetos no modelo de leitura com o ouvinte, para UserAdded
do evento.
Obrigado.
Solução
Se você usar o evento de abastecimento como o mecanismo de persistência, então:
- o fluxo de eventos é a única fonte de verdade (objeto instantâneos gerados a partir de sequência de eventos pode ser utilizado para melhorar o desempenho, mas eles são apenas a técnica).
- Quando você usa o evento sourcing, você não precisa gerar o evento explicitamente - basta publicar real eventos gerados durante o processamento do comando.
- se você tiver uma lista predefinida de países, que nunca vão mudar, você pode apenas codificar e referenciá-los por seus códigos de país.No entanto, isto implica que o modelo de modo de exibição de INTERFACE do usuário e saber sobre o que e países não vão mudar.
BTW, eu recomendo colocar questões como estas para DDD/CQRS grupo.É a mais ativa da comunidade nas questões de CQRS/DDD/ES.