Os eventos de domínio NÃO são a sua API pública.
- por Derek Comartin
- Publicado em Derek Comartin (CodeOpinion)
- Selecionado em
- Architecture
- Messaging
Você finalmente conseguiu. Deixou de publicar eventos CRUD e passou a transmitir eventos de domínio.
Em vez de publicar ShipmentStatusChanged , ShipmentUpdated ou EstimatedDeliveryDateChanged , começou a publicar eventos de domínio mais significativos, como DeliveryAttemptFailed , ETARecalculated e ShipmentDelayed .
E aparentemente isto deveria ser melhor, certo?
Errado.
YouTube
Espreitem o meu canal de YouTube , onde publico diversos conteúdos sobre Arquitetura e Design de Software, incluindo este vídeo que aborda tudo o que foi referido nesta publicação.
Agora está a publicar eventos de domínio em vez de eventos CRUD. Mas ainda sente todos os problemas quando precisa de alterar um destes eventos. Está a quebrar consumidores, às vezes consumidores que nem sabia que existiam.
Isto ocorre porque os eventos do seu domínio são privados. Na verdade, não são diferentes da publicação de eventos de alteração de dados se estiver a expor detalhes internos que o resto do sistema não deveria conhecer.