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
- Eventos de dominio para hechos de negocio entre bounded contexts.
- Nombres en past tense; versionados (
ThingHappened:v1). - Publicación después de commit exitoso.
- MVP: eventos in-process en el monolito.
- Bus externo (Redis streams, Kafka, etc.) solo con necesidad real + ADR.
- 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.