dbos-inc/dbos-transact-ts

Database-Backed Durable TypeScript Workflows

해결하는 문제

DBOS는 지속 가능한 워크플로우와 큐를 제공함으로써 신뢰할 수 있는 애플리케이션 개발을 단순화합니다. 예를 들어 결제 처리 중 서버 충돌이나 장시간 실행되는 데이터 파이프라인의 중단과 같은 장애 상황에서, 복잡한 상태 관리, 수동 복구 로직, 또는 무거운 외부 오케스트레이션 서비스가 필요하지 않습니다.

작동 방식

DBOS는 Postgres 데이터베이스를 사용하여 프로그램의 상태를 체크포인트하는 가벼운 라이브러리입니다. 개발자는 일반적인 TypeScript 함수에 "워크플로우"와 "스텝"으로 주석을 달 수 있습니다. 프로그램이 실패하면 DBOS는 Postgres에 저장된 마지막 완료된 스텝에서 자동으로 실행을 재개합니다. 또한 추가 인프라 없이 Postgres 기반의 백그라운드 작업 큐, 이벤트 처리, 스케줄링, 알림을 위한 기본 제공 기능을 제공합니다.

대상 사용자

결제 시스템, 장애 내성 데이터 파이프라인, 불안정하고 비결정론적인 API에 의존하는 AI 에이전트와 같은 장애를 신뢰성 있게 처리해야 하는 서비스를 개발하는 개발자들을 위한 것입니다.

주요 특징

  • 지속 가능한 워크플로우: 장애 발생 후 마지막 완료된 스텝에서 자동으로 실행을 재개합니다.
  • 지속 가능한 큐: Postgres만으로 흐름 제어, 레이트 제한, 중복 제거 기능을 갖춘 백그라운드 작업 관리가 가능합니다.
  • 프로그래밍 방식 관리: DBOS 클라이언트를 통해 실패한 워크플로우를 쿼리, 일시 정지, 재개, 분기할 수 있습니다.
  • 정확히 한 번 처리: idempotency 키를 사용하여 웹훅이나 Kafka 메시지와 같은 이벤트가 정확히 한 번만 워크플로우를 트리거하도록 보장합니다.
  • 지속 가능한 스케줄링: cron 기반 스케줄링과 재시작 후에도 유지되는 장기적인 "지속적 대기"를 지원합니다.

관련

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