dbos-inc/dbos-transact-py

Database-Backed Durable Python Workflows

무엇을 해결하는가

DBOS는 복잡한 상태 관리, 외부 오케스트레이터 또는 별도의 작업 큐 시스템의 필요성을 제거함으로써 신뢰할 수 있고 결함 허용이 가능한 애플리케이션 생성을 단순화합니다. 이를 통해 개발자는 결제 서비스, 데이터 파이프라인 또는 AI 에이전트와 같은 장기 실행 프로세스가 처음부터 다시 시작하지 않고도 충돌이나 중단으로부터 원활하게 복구될 수 있도록 보장할 수 있습니다.

어떻게 작동하는가

DBOS는 Postgres 데이터베이스를 사용하여 프로그램의 상태를 체크포인트로 기록하는 경량 라이브러리입니다. 일반적인 Python 함수를 @DBOS.workflow()@DBOS.step()으로 어노테이션하면, 라이브러리가 Postgres에 진행 상황을 자동으로 기록합니다. 실패가 발생하면 DBOS는 재시작 시 마지막으로 완료된 단계부터 워크플로우를 재개합니다. 이 내구성을 큐, 스케줄링 및 이벤트 처리와 같은 다른 기본 요소로 확장하며, 이 모든 것은 동일한 Postgres 인스턴스에 의해 지원됩니다.

누구를 위한 것인가

이 라이브러리는 실패를 안정적으로 처리해야 하는 애플리케이션을 구축하는 개발자, 특히 무거운 오케스트레이션 인프라(예: Temporal)를 관리하는 오버헤드를 피하고 싶거나 이미 스택에서 Postgres를 사용 중인 개발자를 위해 설계되었습니다.

주요 특징

  • Durable Workflows: 실패 후 마지막으로 완료된 단계부터 재개할 수 있도록 상태를 자동으로 체크포인트로 기록합니다.
  • Durable Queues: 흐름 제어, 속도 제한 및 중복 제거 기능이 있는 Postgres 기반의 백그라운드 작업 실행을 지원합니다.
  • Programmatic Management: 워크플로우는 Postgres 행으로 저장되므로, 개발자는 스크립트를 통해 실패한 실행을 쿼리, 일시 중지, 재개 또는 포크할 수 있습니다.
  • Exactly-Once Processing: 웹훅 및 Kafka 컨슈머를 위한 'idempotency keys'를 지원하여 이벤트가 정확히 한 번만 처리되도록 보장합니다.
  • Durable Scheduling: 재시작 후에도 유지되는 cron 스타일의 스케줄링 및 내구성 있는 sleep 함수를 포함합니다.
  • Durable Notifications: 워크플로우가 특정 알림을 받을 때까지 또는 타임아웃에 도달할 때까지 일시 중지할 수 있도록 합니다.

관련

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