Skip to content

Eventos de dominio ​

Un evento de dominio representa algo importante que ya ocurrio dentro del negocio.

Nombres en pasado ​

txt
OrderConfirmed
PaymentCaptured
CoursePublished
StudentEnrolled
InvoiceOverdue

El pasado importa porque el evento no pide permiso: informa un hecho.

Que debe contener ​

Un evento debe contener datos suficientes para que los consumidores actuen sin conocer el modelo interno.

json
{
  "eventId": "evt_123",
  "type": "OrderConfirmed",
  "occurredAt": "2026-06-27T10:30:00Z",
  "orderId": "ord_123",
  "customerId": "cus_456"
}

Eventos internos y externos ​

  • Internos: coordinan partes del mismo bounded context.
  • Externos: forman parte de un contrato publicado.

Los externos deben versionarse y documentarse mejor.

Outbox pattern ​

Para evitar guardar en base de datos y fallar al publicar evento:

txt
transaction
  save aggregate
  save event in outbox

publisher
  read outbox
  publish event
  mark as published

Idempotencia ​

Los consumidores deben tolerar eventos duplicados. Usa eventId, claves naturales o tablas de procesado.

Checklist ​

  • Los eventos representan hechos del negocio.
  • Se nombran en pasado.
  • Incluyen identificadores y fecha.
  • Los eventos externos tienen contrato.
  • Los consumidores son idempotentes.