Skip to content

ryanalencar/domain-events

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Domain Events

Bounded Contexts

Dentro do DDD, os contextos da nossa aplicação (módulos / microsserviços).

Por que Domain Events?

  • Se intercomunicar entre os bounded contexts da aplicação

Exemplo da vida real:

Vendas (Sales)

  • Fechar a venda (Casos de uso);

Fiscal (Fiscal)

  • Emitir nota fiscal (Casos de uso);
  • Cancelar nota fiscal (Casos de uso);

Problemática

  • Como que, ao fechar a venda, eu farei a emissão da nota fiscal?

Diagrama de casos de uso

Atores -> Casos de uso

Pub/Sub

  • Publish (publicadores) / Subscriber (inscrito)
subscribeToEvent('order-created', submitInvoice())
const subscribers = {
 'order-created': [submitInvoice()]
}

function createOrder() {
 publishToEvent('order-created', {
   id: 'order-id',
   customer: 'Diego',
 })
}

const eventSubscribers = subscribers['order-created']

Releases

No releases published

Packages

No packages published