$mermaidjs
Clean Architecture Demo
Loading...
Searching...
No Matches
TaskManagement.Application.Interfaces.IDomainEventDispatcher Interface Reference

IDomainEventDispatcher es la interfaz para publicación de eventos del dominio. More...

Inheritance diagram for TaskManagement.Application.Interfaces.IDomainEventDispatcher:
Collaboration diagram for TaskManagement.Application.Interfaces.IDomainEventDispatcher:

Public Member Functions

Task DispatchAsync (IReadOnlyCollection< DomainEvent > events, CancellationToken cancellationToken=default)
 

Detailed Description

IDomainEventDispatcher es la interfaz para publicación de eventos del dominio.

Rol en Clean Architecture:

  • Parte de la capa de aplicación
  • Define el contrato para envío de eventos del dominio
  • Abstracción de implementación: Interfaz en Aplicación, implementación en Infraestructura
  • Habilita orquestación de envío de eventos después de persistencia exitosa

Beneficios del patrón de Envío de Eventos:

  • Desacopla lógica del dominio de efectos secundarios -correos, notificaciones-
  • Permite desacoplamiento de la infraestructura y facilidad del testing.
  • Soporta procesamiento asíncróno de eventos del dominio
  • Proporciona puntos de extensión sin modificar entidades del dominio
  • Mantiene código del dominio limpio libre de preocupaciones de infraestructura

Responsabilidades:

  • Enviar todos los eventos del dominio elevados por un agregado
  • Ejecutar manejadores de eventos registrados de forma asíncróna
  • Manejar cualquier excepción que ocurra durante procesamiento de eventos
  • Asegurar que todos los eventos se procesen antes de devolver a llamador

Nota: Los eventos del dominio representan hechos del pasado que no pueden cambiar. Habilitan a la aplicación a reaccionar a ocurrencias importantes del dominio.

Definition at line 37 of file IDomainEventDispatcher.cs.

Member Function Documentation

◆ DispatchAsync()

Task TaskManagement.Application.Interfaces.IDomainEventDispatcher.DispatchAsync ( IReadOnlyCollection< DomainEvent events,
CancellationToken  cancellationToken = default 
)

The documentation for this interface was generated from the following file: