Resumen / Puntos clave
- Una nueva extensión de código abierto de Microsoft le permite construir flujos de trabajo duraderos y tolerantes a fallos directamente dentro de Postgres.
- Esto significa que puede prescindir de orquestadores externos y trabajos cron, gestionando pipelines complejos con solo unas pocas líneas de SQL.
El orquestador dentro de su base de datos
PG Durable es una nueva Extensión de Postgres de código abierto desarrollada por Microsoft que permite a todos ejecutar funciones duraderas y a prueba de fallos directamente dentro de Postgres. Transforma su base de datos en un orquestador de flujos de trabajo, eliminando la necesidad de servicios externos.
Durante demasiado tiempo, la gestión de flujos de trabajo complejos y centrados en la base de datos significó lidiar con sistemas externos como cron jobs, Temporal o colas de mensajes. PG Durable resuelve esto al integrar tareas programadas, reintentos automáticos y procesos de larga duración de forma nativa en su base de datos, simplificando significativamente su arquitectura.
¿Qué hace que estas funciones sean verdaderamente "duraderas"? A diferencia de una transacción `BEGIN...COMMIT` simple, PG Durable persiste el estado de su función en el disco en cada paso de su ejecución. Esto asegura que si su base de datos falla o se reinicia a mitad del flujo de trabajo, su proceso se reanuda exactamente donde lo dejó, sin perder progreso.
Esta garantía a prueba de fallos cambia las reglas del juego. Proporciona una sólida tolerancia a fallos para operaciones críticas, desde aprobaciones con intervención humana hasta transformaciones de datos de varios pasos que antes exigían una orquestación externa elaborada. Piense en ello como un motor de flujo de trabajo resiliente, integrado directamente en el corazón de sus datos.
Sus nuevos superpoderes SQL
Imagine construir flujos de trabajo complejos directamente dentro de su base de datos, no solo consultarla. PG Durable le otorga nuevos superpoderes SQL, transformando su base de datos en un orquestador completo. Introduce un DSL nativo de SQL con potentes operadores para definir el flujo de ejecución.
Puede secuenciar operaciones con `~>`, ejecutarlas en paralelo usando `&`, o crear bucles eternos con `@>`. Esto le permite construir gráficos sofisticados de pasos directamente dentro de sus sentencias SQL, haciendo que la lógica compleja sea sorprendentemente concisa.
PG Durable también incorpora funciones esenciales. Use `df.start()` para iniciar un flujo de trabajo de forma asíncrona, recibiendo inmediatamente un ID para su seguimiento. ¿Necesita una programación similar a cron? `df.wait_for_schedule` le permite pausar hasta una hora especificada. Para aprobaciones humanas o eventos externos, `df.wait_for_signal` detiene su flujo de trabajo hasta que recibe una señal de activación.
Fundamentalmente, cuando inicia un proceso con `df.start()`, se ejecuta en un worker en segundo plano de Postgres. Esto significa que su conexión de cliente devuelve inmediatamente un ID y no se bloquea, incluso para flujos de trabajo de larga duración o en bucle perpetuo. Su base de datos se encarga del trabajo pesado, liberando su aplicación.
De 300 líneas de código a 7
Cuando hablamos de "90% menos código", no es solo palabrería de marketing. Considere el ejemplo del video: más de 300 líneas de código repetitivo —para la configuración de colas, manejo de errores, gestión de workers y seguimiento de estado— pueden ser reemplazadas por solo siete líneas de PG Durable SQL. Esta drástica reducción proviene de mover la lógica de orquestación compleja a la propia base de datos.
Imagine construir un sistema robusto que gestione colas de mensajes, sondee nuevas tareas, maneje el procesamiento de mensajes, rastree el estado a través de múltiples pasos e implemente el manejo de errores con reintentos automáticos. Típicamente, esto requiere un código personalizado significativo o servicios externos. PG Durable abstrae todo eso, permitiéndole enfocarse en la lógica de negocio.
Esta concisión hace que PG Durable brille para flujos de trabajo específicos. Es ideal para: - Pipelines ETL que necesitan transformaciones de datos fiables y de varios pasos. - Mantenimiento programado, como la actualización de vistas materializadas o la ejecución de tareas diarias de limpieza. - Lógica de negocio de varios pasos, como el procesamiento de pedidos o facturas. - Flujos de trabajo de integración de API que necesitan gestionar llamadas externas y sus respuestas de forma duradera.
El poder reside en la extensión que maneja las partes difíciles. Los desarrolladores ya no necesitan construir soluciones personalizadas para la durabilidad, los reintentos automáticos o la gestión compleja del estado. PG Durable proporciona estas capacidades fundamentales de forma predeterminada, asegurando que sus flujos de trabajo sean a prueba de fallos y se autorreparen con un código mínimo.
Las compensaciones: Cuándo mantener su orquestador
El verdadero poder de PG Durable emerge cuando la lógica y el estado de su flujo de trabajo están profundamente entrelazados con los datos que ya residen en Postgres. Maneja perfectamente casos de uso como la automatización de actualizaciones de vistas materializadas, la orquestación de transformaciones de datos de varios pasos o la gestión de procesos de aprobación con intervención humana directamente donde residen sus datos principales. Esta estrecha integración en la base de datos simplifica drásticamente el desarrollo, elimina las dependencias de servicios externos y a menudo reduce la sobrecarga operativa para las tareas centradas en datos.
Enjoying this? Get one like it in your inbox each morning.
one email a day · unsubscribe in two clicks · no third-party tracking
Sin embargo, los orquestadores externos aún mantienen su posición para escenarios más amplios y complejos. Considere flujos de trabajo que abarcan muchos sistemas heterogéneos, coordinando microservicios, API externas y funciones en la nube a través de diferentes plataformas. Para estos, un orquestador dedicado ofrece la flexibilidad y las sólidas capacidades de integración que se extienden mucho más allá de una sola base de datos, especialmente cuando se trata de lógica de aplicación intrincada que no es adecuada para SQL. Estas herramientas externas proporcionan una capa especializada para la gestión de sistemas distribuidos.
Los permisos de instalación son una consideración crucial para PG Durable. Como extensión de Postgres, requiere privilegios específicos para instalar y configurar dentro de su instancia de base de datos. También aprovecha un background worker dedicado para ejecutar funciones duraderas, lo que lo convierte en una parte integral de su servidor de base de datos. Si bien esta arquitectura proporciona una fiabilidad a prueba de fallos, también significa que PG Durable es una herramienta potente y especializada para la orquestación en la base de datos, no un sustituto universal para cada desafío de orquestación en toda su infraestructura.
Preguntas frecuentes
¿Qué es PG Durable?
PG Durable es una extensión de PostgreSQL de código abierto de Microsoft que permite a los desarrolladores crear y gestionar flujos de trabajo duraderos y tolerantes a fallos, así como trabajos programados directamente dentro de la base de datos utilizando un DSL nativo de SQL.
¿En qué se diferencia PG Durable de un cron job tradicional?
A diferencia de un cron job, que es un simple programador, PG Durable proporciona una ejecución duradera y con estado. Sus flujos de trabajo se persisten en disco en cada paso, lo que significa que pueden sobrevivir a fallos y reinicios de la base de datos, reintentando y reanudando automáticamente donde lo dejaron.
¿Es PG Durable un reemplazo para herramientas como Temporal o Airflow?
PG Durable es un excelente reemplazo para flujos de trabajo centrados en bases de datos, eliminando la necesidad de servicios externos. Sin embargo, herramientas como Temporal o Airflow son más adecuadas para la orquestación compleja a través de muchos sistemas heterogéneos o cuando la lógica principal reside fuera de la base de datos.
¿Qué versión de PostgreSQL se requiere para PG Durable?
PG Durable está diseñado para versiones modernas de PostgreSQL. La imagen oficial de Docker de Microsoft se ejecuta en Postgres 17, y es mejor consultar la documentación oficial para obtener la información de compatibilidad más reciente.
¿Pueden los flujos de trabajo de PG Durable realizar llamadas HTTP externas?
Sí, PG Durable incluye funcionalidad para realizar solicitudes HTTP directamente desde un flujo de trabajo SQL, lo que le permite integrarse con API externas como parte de su función duradera.
