Qué hacer cuando una solicitud HTTP tiene éxito pero la transacción de la base de datos se revierte

Explora soluciones para manejar transacciones de base de datos fallidas tras solicitudes HTTP exitosas.

5 min readTecnología

En situaciones donde tu servicio interactúa con una base de datos y APIs externas, puedes enfrentar problemas como: fondos deducidos sin un pedido correspondiente en la base de datos, inventario bloqueado indefinidamente debido a un pedido fantasma, o un mensajero entregando un paquete que nunca fue solicitado. Estos problemas surgen del desafío arquitectónico de las escrituras dobles. Afortunadamente, existen patrones establecidos para abordar esto, incluyendo Transactional Outbox, Result Table y Saga Compensation. Este artículo no solo profundiza en estas soluciones teóricas, sino que también presenta un proyecto práctico en Scala que puedes clonar y ejecutar para ver estos conceptos en acción.

Tecnología