En sistemas distribuidos, mantener el estado de un motor de flujos de trabajo y los datos de la aplicación dentro de la misma base de datos Postgres ofrece garantías transaccionales que simplifican problemas clásicos como la idempotencia y la atomicidad. DBOS argumenta, frente a la práctica habitual de separar ambas capas, que la ubicación conjunta actúa como una “superpotencia”: al compartir la misma transacción de base de datos, desaparecen las ventanas de fallo parcial en las que una operación se confirma pero su punto de control no queda registrado.
La entrada explica paso a paso cómo funciona esta idea. Con los pasos transaccionales, una operación que modifica la base de datos y el checkpoint del flujo se confirman de forma atómica, lo que aporta semántica de ejecución exactamente una vez y elimina la necesidad de tablas auxiliares para evitar duplicados. Con el patrón de outbox transaccional de flujos, basta una función definida por el usuario para encolar un workflow en la misma transacción que la actualización de la aplicación, en lugar de mantener tablas outbox, procesos de sondeo y tareas de reconciliación.
El artículo incluye ejemplos concretos —como un paso que añade dinero a una cuenta bancaria o el envío de un pedido al almacén tras confirmar el pedido— y enlaces al inicio rápido, al repositorio en GitHub y a la comunidad de Discord de DBOS para quien quiera profundizar.
