dbos-inc/dbos-transact-ts

Database-Backed Durable TypeScript Workflows

해결하는 문제

DBOS Transact는 별도의 무거운 오케스트레이션 서버 없이 TypeScript 프로그램의 신뢰성과 장애 내성(장애에 강한)을 제공합니다. 서버 충돌이나 장시간 실행 프로세스가 중단될 때 복잡한 상태 관리 및 복구 로직을 관리하는 문제를 해결합니다. 예를 들어, 결제 서비스나 데이터 파이프라인과 같은 애플리케이션에 해당됩니다.

작동 방식

DBOS는 Postgres 데이터베이스를 사용하여 프로그램의 상태를 체크포인트로 저장합니다. 일반 함수를 "워크플로우"와 "스텝"으로 등록함으로써, 프로그램이 실패했을 경우 재시작 시 마지막으로 완료된 스텝에서 자동으로 재개되도록 보장합니다. 외부 작업 큐나 오케스트레이터가 필요 없도록 하며, 내구성 로직을 라이브러리 내부에 직접 구현합니다.

대상 사용자

금융 거래 관리, 데이터 파이프라인, 비결정적 또는 신뢰할 수 없는 외부 API에 의존하는 AI 에이전트와 같은 높은 신뢰성이 필요한 애플리케이션을 개발하는 개발자에게 적합합니다.

주요 기능

  • 내구성 있는 워크플로우: 장애 발생 후 Postgres의 마지막 체크포인트에서 자동으로 실행을 재개합니다.
  • 내구성 있는 큐: Postgres로 백업된 백그라운드 작업 실행, 흐름 제어, 레이트 제한, 중복 제거 기능을 제공합니다.
  • 프로그래밍 방식 관리: Postgres 테이블을 통해 실패한 워크플로우를 직접 쿼리, 일시 정지, 재개, 분기할 수 있습니다.
  • 정확히 한 번만 처리: 이벤트가 정확히 한 번만 처리되도록 idempotency 키를 내장 지원합니다.
  • 내구성 있는 스케줄링: cron 기반 스케줄링과 재시작 후에도 유지되는 장기적인 "내구성 있는 슬립"을 지원합니다.
  • 내구성 있는 알림: 워크플로우 일시 정지 또는 재개를 위한 알림의 전송 및 수신 시 정확히 한 번만 처리되는 세마포어를 제공합니다.

관련

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