ADR-014 — Domain Events

Architecture decision record — status: Accepted (seed default).

Source: docs/adr/ADR-014-domain-events.md

ADR-014: Domain Events

Estado

Accepted (seed default) — enmendable por proyecto

Contexto

La comunicación directa entre módulos genera acoplamiento y dificulta evolución.

Decisión

  1. Eventos de dominio para hechos de negocio entre bounded contexts.
  2. Nombres en past tense; versionados (ThingHappened:v1).
  3. Publicación después de commit exitoso.
  4. MVP: eventos in-process en el monolito.
  5. Bus externo (Redis streams, Kafka, etc.) solo con necesidad real + ADR.
  6. Catálogo documentado en docs/domain/ (cuando exista).

Consecuencias

  • Desacoplamiento entre módulos.
  • Consumidores eventuales; diseñar idempotencia en handlers.
  • No reemplazan la consistencia transactional dentro de un agregado.

Ver DOC-010 §5.