← Proyectos y patrones

Transactional Outbox

Guardar el cambio de negocio y el evento pendiente en la misma transacción para evitar eventos perdidos.

Qué resuelve

La aplicación escribe el estado y un registro outbox en una sola transacción local; un worker publica después el evento.

Evita el fallo clásico donde la base confirma el cambio pero el proceso muere antes de publicar el mensaje.

Cuándo tiene sentido

Cuando una operación de negocio debe notificar a otros módulos o servicios sin depender de una transacción distribuida.

Combina bien con consumidores idempotentes, reintentos y dead-letter queues.

Compensaciones

Requiere limpiar registros publicados, controlar duplicados y monitorear el retraso entre commit y publicación.

No garantiza entrega exactly-once por sí solo; el contrato real suele ser at-least-once más idempotencia.

Comentarios