Event-Driven / Event Sourcing
Comunicar servicios mediante eventos de dominio en vez de llamadas directas; opcionalmente, guardar el estado como secuencia de eventos.
Qué resuelve
Event-driven desacopla productores y consumidores: el servicio que genera el evento no necesita saber quién lo consume.
Event Sourcing (distinto de event-driven, aunque suelen combinarse) guarda cada cambio de estado como un evento inmutable en vez de solo el estado final — da auditoría completa y permite reconstruir el estado en cualquier punto del tiempo.
Cuándo tiene sentido
Varios servicios/módulos necesitan reaccionar al mismo hecho de negocio sin acoplarse entre sí.
Se necesita auditoría real (quién cambió qué y cuándo) o la capacidad de reproducir el histórico — casos típicos de Event Sourcing.
Compensaciones
Consistencia eventual: los consumidores procesan el evento después del hecho, no en la misma transacción.
Depurar un flujo distribuido de eventos es más difícil que seguir una llamada síncrona — se necesita buena trazabilidad/observabilidad.
Event Sourcing añade complejidad real: versión de eventos, snapshots para no reconstruir todo el historial cada vez, y una curva de aprendizaje para el equipo.
Comentarios