마이크로소프트가 PostgreSQL(포스트그레스큐엘) 데이터베이스 내에서 장기 실행 작업을 안정적으로 처리할 수 있는 오픈소스 확장 기능 'pg_durable'을 공개했습니다. 이는 데이터베이스 내부에서 내구성 있는 실행(durable execution)을 구현하여, 기존에 크론 잡(cron job), 워커(worker), 큐(queue), 상태 테이블 등을 복잡하게 조합해야 했던 백그라운드 작업의 신뢰성을 크게 높여줍니다. 개발팀은 이제 SQL만으로 워크플로우를 정의하고, 시스템 충돌이나 재시작, 단계 실패 시에도 마지막 체크포인트부터 작업을 재개할 수 있게 됩니다.
pg_durable의 핵심 아이디어는 SQL 함수를 단계별 그래프로 정의하고, PostgreSQL이 각 단계를 실행하며 체크포인트를 저장하는 것입니다. 예를 들어, 벡터 임베딩 파이프라인(chunk, 임베딩 API 호출, pgvector에 업서트)이나 데이터 수집 파이프라인(스테이징, 중복 제거, 변환, 대량 발행)과 같은 복잡한 작업을 SQL 내에서 직접 처리할 수 있습니다. 이는 기존 방식인 pg_cron과 잡 테이블 조합, 외부 오케스트레이터(Airflow, Temporal 등) 사용, 혹은 PL/pgSQL 프로시저의 한계점(충돌 시 재시작)을 극복하며, 작업 로직이 여러 시스템에 분산되는 문제도 해결합니다. 마이크로소프트는 이 기능을 자사의 PostgreSQL 클라우드 서비스인 애저 호라이즌DB(Azure HorizonDB)에도 내장하여 제공하고 있습니다.
pg_durable은 백엔드 및 데이터 엔지니어, DBA(데이터베이스 관리자), SRE(사이트 신뢰성 엔지니어) 등 데이터와 밀접하게 연동되는 워크플로우를 구축하는 팀에게 특히 유용합니다. 작업 정의와 재시도 상태, 진행 상황 추적, 체크포인트가 모두 PostgreSQL 내에서 관리되므로, 별도의 애플리케이션 계층 워커나 큐 소비자를 줄일 수 있습니다. 이는 아키텍처를 단순화하고 운영 가시성을 높이는 효과를 가져옵니다. 다만, SQL 형태로 매핑하기 어려운 복잡한 애플리케이션 로직이나 서브 밀리초(sub-millisecond) 단위의 동기식 요청 처리에는 적합하지 않으며, PostgreSQL 확장 기능 설치가 불가능한 환경에서는 사용할 수 없습니다.