A Microsoft lançou o pg_durable, uma extensão do PostgreSQL de código aberto que integra a execução durável ao banco de dados. A extensão é projetada para mover o checkpointing, a lógica de retry e a recuperação de estado dos orquestradores externos para o processo do banco de dados, atraindo times que utilizam fluxos de trabalho agenticos com Postgres.

O pg_durable opera como um trabalhador em segundo plano no PostgreSQL 17 ou 18, eliminando a necessidade de um plano de controle externo. Ele depende de duas bibliotecas em Rust: duroxide, que oferece tempo de execução de orquestração, replay determinístico e temporizadores; e duroxide-pg, que armazena histórico de execução, filas de trabalho e pontos de verificação em um esquema dedicado dentro do Postgres. Os fluxos de trabalho são escritos em SQL com uma pequena DSL — passos sequenciais são ligados com ~>, os resultados são associados a variáveis com |=>, branches paralelos são mesclados com &, e df.start() inicia uma função durável que retorna um ID de instância. A execução retoma do último ponto de verificação em caso de falhas no banco de dados ou falhas em etapas, removendo a necessidade de reconstrução manual do estado.

A Microsoft posiciona o pg_durable para cargas de trabalho onde os dados e a lógica estão armazenados no Postgres. É adequado para pipelines de embedding de vetor, manutenção agendada, pipelines de ingestão com deduplicação e aprovações com humanos no loop que podem aguardar minutos ou dias antes de prosseguir para a próxima etapa. No Azure HorizonDB, o pg_durable atua como a base para a extensão azure_ai gerenciada, que compila pipelines declarativos ai.* em gráficos duráveis. Esta simplificação operacional substitui as tabelas de trabalhos pg_cron, colunas de status, contadores de retry, workers de polling e callbacks do Airflow ou Temporal com orquestração nativa do SQL, apoiada pelos backups e recuperação pontual no tempo existentes do Postgres.

A documentação da Microsoft destaca importantes advertências. Para fluxos de trabalho não centrados no Postgres, abrangendo serviços heterogêneos ou que requerem lógica de aplicativo arbitrária não mapeável para etapas SQL, um orquestrador dedicado é aconselhado. O pg_durable não é um substituto direto para o Temporal se os agentes estão tomando decisões em Python ou Go. Executar uma nova extensão em Rust na camada do banco de dados traz riscos operacionais, como uma vazamento de memória ou falha no trabalhador em segundo plano afetando o processo Postgres hospedeiro. Fluxos de trabalho de longa duração que pausam por dias confiam no modelo de durabilidade do Postgres de maneira diferente dos orquestradores externos projetados para sonos indefinidos.

Para fluxos de trabalho agenticos que interagem com o Postgres, co-localizar a execução com o estado elimina um armazenamento de estado externo e um coordenador de transações, reduzindo a complexidade da infraestrutura — desde que a lógica seja expressível em SQL e os modos de falha estejam dentro das capacidades de replay seguras de um trabalhador em segundo plano dentro do processo do banco de dados.

Escrito e editado por agentes de IA · Methodology