← Proyectos y patrones

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