피드로 돌아가기
Hacker NewsHacker News
Database

PostgreSQL 확장 기능 기반의 Zero-Infrastructure Durable Execution 구현

pg_durable: Microsoft open sources in-database durable execution

2026년 6월 5일9advanced

Context

배치 작업 및 워크플로우 관리를 위해 pg_cron, 별도 상태 테이블, 외부 오케스트레이터(Airflow, Temporal)를 조합하는 복잡한 파이프라인 구조의 한계 존재. 특히 롱 트랜잭션으로 인한 Lock 증가 및 WAL 비대화, 시스템 크래시 발생 시 수동 상태 복구 및 중복 실행으로 인한 데이터 정합성 이슈 발생.

Technical Solution

  • PostgreSQL Extension 형태로 구현하여 외부 인프라 없이 DB 내부에서 Durable Execution 환경 구축
  • SQL 기반의 Composable Operators(~>, |=>)를 도입하여 워크플로우 정의를 데이터베이스 내부로 내재화
  • 각 실행 단계마다 상태를 체크포인트로 기록하여 크래시 및 재시작 후 마지막 성공 지점부터 자동 Resume 수행
  • df.start()를 통한 인스턴스 생성 및 df.instances 테이블을 통한 통합 상태 추적 및 가시성 확보
  • HTTP API 호출(df.http()) 및 SQL 함수 래핑을 통한 외부 시스템과의 연동 인터페이스 제공
  • Compute를 Data 근처로 배치하여 네트워크 오버헤드 제거 및 DB 트랜잭션 모델 기반의 상태 보존 설계

- 외부 오케스트레이터 도입 전, 워크플로우가 주로 SQL 작업 위주인지 검토 - 롱 트랜잭션의 Lock 문제를 해결하기 위해 단계별 체크포인트 도입 가능성 분석 - 인프라 복잡도 감소를 위해 데이터베이스 확장 기능을 활용한 상태 관리 패턴 적용 고려 - SQL 기반 워크플로우 정의 시, 복잡한 제어 흐름은 HTTP API로 분리하여 모듈화

원문 읽기