dbos-inc/dbos-transact-py

Database-Backed Durable Python Workflows

해결하는 문제

DBOS Transact는 복잡한 상태 관리, 외부 작업 큐, 또는 무거운 오케스트레이션 서버가 필요 없도록 하여 신뢰성 있고 장애에 강한 애플리케이션을 쉽게 만들 수 있도록 합니다. 개발자는 결제 거래, 데이터 파이프라인, AI 에이전트 작업과 같은 장시간 실행 프로세스가 서버 충돌이나 API 실패 후 처음부터 다시 시작하는 대신, 마지막으로 완료된 단계에서 정확히 다시 시작할 수 있도록 보장할 수 있습니다.

작동 방식

DBOS는 가벼운 Python 라이브러리로, Postgres 데이터베이스를 사용하여 프로그램의 상태를 체크포인트로 기록합니다. 일반 함수에 @DBOS.workflow() 및 @DBOS.step() 데코레이터를 추가하면 라이브러리가 자동으로 진행 상황을 Postgres에 저장합니다. 장애가 발생하면 DBOS는 이러한 체크포인트를 사용하여 자동으로 복구하고 마지막으로 완료된 단계에서 워크플로우를 재개합니다.

대상 사용자

Postgres를 이미 사용 중이거나, Temporal이나 Airflow와 같은 전용 오케스트레이터의 인프라 부담을 피하고자 하는 개발자를 위한 것입니다.

주요 기능

  • 내구성 있는 워크플로우: 시스템 충돌 후 실행을 재개하기 위해 상태를 자동으로 체크포인트로 저장.
  • 내구성 있는 큐: Postgres를 백엔드로 사용하는 백그라운드 작업 관리로 흐름 제어, 레이트 제한, 중복 제거 기능 제공.
  • 프로그래밍 방식 관리: 워크플로우는 Postgres의 행으로 저장되어 클라이언트를 통해 쿼리, 일시 정지, 재개, 실패한 실행의 분기 가능.
  • 정확히 한 번만 처리: idempotency 키를 내장하여 웹훅이나 Kafka 메시지와 같은 이벤트가 정확히 한 번만 처리되도록 보장.
  • 내구성 있는 스케줄링: cron 스타일 스케줄링과 재시작 후에도 유지되는 장기적인 내구성 있는 슬립(일주일 또는 수주)을 지원.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트