pg-durable

star 0

Ejecución durable dentro de PostgreSQL — flujos de trabajo SQL que sobreviven a crashes y reinicios. Microsoft, 1.5k⭐

Ntizar By Ntizar schedule Updated 6/8/2026

name: pg-durable description: "Ejecución durable dentro de PostgreSQL — flujos de trabajo SQL que sobreviven a crashes y reinicios. Microsoft, 1.5k⭐" url: https://github.com/microsoft/pg_durable category: infraestructura fecha: 2026-06-08

pg_durable — Durable Execution en PostgreSQL

¿Qué hace?

pg_durable lleva el patrón de durable execution (ejecución durable) directamente dentro de PostgreSQL. Permite definir funciones SQL de larga duración que se checkpointean paso a paso y se reanudan tras crashes, reinicios o fallos.

El problema que resuelve: Equipos que ya usan PostgreSQL pero necesitan workflows fiables terminan apilando cron jobs, workers, queues y tablas de estado. pg_durable elimina esa complejidad.

Características clave

  • Funciones SQL durables — Un workflow es un grafo de pasos SQL que PostgreSQL ejecuta y checkpointea
  • Resistencia a fallos — Si la DB crasha, el workflow se reanuda desde el último checkpoint
  • Sin infraestructura extra — Todo vive dentro de PostgreSQL, no necesitas servicios adicionales
  • PostgreSQL 17 y 18 — Compatible con las últimas versiones
  • Escrito en Rust — Parte de la estrategia de Microsoft de llevar compute close to data
  • Azure HorizonDB — Ya disponible en el servicio cloud de Microsoft

Casos de uso

  • Pipelines de datos — Workflows ETL que sobreviven a reinicios del servidor
  • Pipelines de IA — Procesamiento de documentos, embeddings, inferencias encadenadas
  • Automatización DBA/SRE — Runbooks que deben sobrevivir a maintenance windows
  • Orquestación de agentes IA — Cada agente puede tener su workflow durable por fila/doc

Snippets útiles

-- Ejemplo conceptual de workflow durable en SQL
-- (la sintaxis exacta ver docs oficiales)

-- Definir un workflow con pasos checkpointeados
SELECT pg_durable.create_workflow(
    'mi_pipeline',
    $$
      -- Paso 1: validar datos
      SELECT * FROM validate_records($1);
      
      -- Paso 2: transformar
      SELECT transform_record(r) FROM validate_records($1) r;
      
      -- Paso 3: generar embeddings
      SELECT embed(text) FROM transformed_records;
      
      -- Paso 4: insertar en vector store
      INSERT INTO vector_index SELECT * FROM embedded_records;
    $$
);

-- Ejecutar y esperar
SELECT pg_durable.execute('mi_pipeline', '{"doc_id": 123}');
# Docker quickstart
docker-compose up

# Init script
docker-entrypoint-initdb.d/01-init-pg-durable.sh

Cómo integrarlo

  1. Instalar la extensión en PostgreSQL 17/18
  2. Definir workflows como funciones SQL con pasos checkpointeados
  3. Ejecutar desde tu aplicación o directamente en SQL
  4. Monitorear estado desde tablas de sistema
# Estructura del proyecto
.docker/
.docker-compose.yml
.docker-entrypoint-initdb.d/01-init-pg-durable.sh
.docker/
USER_GUIDE.md
docs/

Diferencias con alternativas

pg_durable Temporal AWS Step Functions Apache Airflow
Infraestructura Ninguna (dentro de Postgres) Servicio separado Cloud AWS Cluster propio
Lenguaje SQL Any (SDKs) Visual/SDK Python
Latencia Muy baja (in-DB) Media Alta Alta
Coste Solo Postgres Infra adicional Por ejecución Infra + mantenimiento
Escrito en Rust Go .NET Python

Pitfalls

  • PostgreSQL 17/18 solo — No funciona en versiones anteriores
  • Azure HorizonDB — La implementación de Microsoft ya está en HorizonDB; la open-source puede tener lag en features
  • No es un scheduler — Es durable execution, no orquestación de jobs programados
  • Rust dependency — Requiere toolchain Rust para compilar desde source

Fecha de descubrimiento

2026-06-08 — Trending diario, 1.5k⭐, creado febrero 2026

Install via CLI
npx skills add https://github.com/Ntizar/koldo --skill pg-durable
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator