Postgres 기반 지속 가능한 워크플로우 구축 방안
원제: Building durable workflows on Postgres
왜 중요한가
데이터베이스 중심의 단순화된 워크플로우 아키텍처는 복잡성 감소와 운영 효율성 향상을 통해 엔터프라이즈 시장에서 경쟁력을 제공할 수 있다.
DBOS가 Postgres를 활용한 지속 가능한 워크플로우 시스템을 제안했다. 기존 Temporal, Airflow 등의 외부 오케스트레이터 방식 대신 Postgres 자체를 오케스트레이터로 활용하여 복잡성을 줄이고 효율성을 높이는 아키텍처를 소개했다.
DBOS는 지속 가능한 워크플로우 구축을 위해 Postgres만으로 충분하다는 접근 방식을 발표했다. 지속 가능한 워크플로우는 프로그램 실행 중 정기적으로 진행 상황을 데이터베이스에 체크포인트로 저장하여, 장애 발생 시 마지막 완료된 단계에서 복구할 수 있는 시스템이다. 기존의 Temporal, Airflow, AWS Step Functions 등은 외부 오케스트레이션 방식을 사용한다. 이 모델에서는 중앙 오케스트레이터가 워크플로우 실행을 조정하고, 각 단계 완료 시마다 결과를 데이터 저장소에 체크포인트로 저장한다. 그러나 DBOS는 이러한 외부 오케스트레이션이 근본적으로 과도하게 복잡하다고 지적했다. 대신 Postgres 기반 시스템에서는 애플리케이션 서버가 중앙 오케스트레이터 없이 Postgres와 직접 통신한다. 클라이언트는 Postgres의 workflows 테이블에 엔트리를 생성하여 워크플로우를 제출하고, 애플리케이션 서버는 테이블을 폴링하여 워크플로우를 큐에서 제거하고 실행한다. 각 단계의 출력은 Postgres에 체크포인트로 저장되며, 서버 장애 시 다른 서버가 체크포인트에서 워크플로우를 복구할 수 있다.