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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top