TonyDev - Blog

PHP, JS, WEB, Software, Development

Command-Oriented Architecture

| Comments

Alguns meses atrás escrevi um post sobre Commands e Domain Events para o PHP-PB e esqueci de postar aqui também.

Bom, aqui vai um link: Commands e Domain Events

Resumindo um pouco o que eu falo no post, esse padrão de arquitetura está em alta nos ultimos tempos:

Basicamente temos:

  1. Fronteiras usam Commands (DTO) para usar nosso app
  2. Commands são executados por um e somente 1 Handlers
  3. Handlers podem usar Services e/ou Repositories para interagir com os Domain Objects
  4. Domain Objects geram Domain Events (podendo ser 1 ou mais)
  5. Handlers disparam os Domain Events dos Domain Objects afetados na ação
  6. Domain Events podem ser ouvidos por 1 ou vários Event Listeners
  7. Listeners podem executar Commands (volte ao item 2)
  8. Handlers devolvem o que está em seus contratos para as Fronteiras
  9. Fim do request

Otimização utilizando Queues

Claro, podemos otimizar esse request disparando os Domain Events em Background utilizando Queues, já que os events ocorrem depois das ações na nossa aplicação, não faz sentido esperar um envio de e-mail, por exemplo (que deveria estar num listener) para responder a request.

Conclusão

Bom, pra saber mais sobre o assunto, basta dar uma lida no meu post lá. Dou uma explicação mais detalhada sobre a arquitetura e ainda tem várias referências legais. :)

Até a próxima!

Comments