9P by xguru 7시간전 | ★ favorite | 댓글 1개
  • "TypeScript로 작성된 내구성 있는(durable), 재개 가능한(resumable) 워크플로 프레임워크"
  • 다양한 서비스와 API를 연결해 복잡한 업무 흐름을 자동화하는 워크플로 엔진 제공
  • 워크플로 자동화와 통합 문제를 해결하기 위해 개발된 모듈형 오픈소스 플랫폼
  • 서버가 죽거나 배포가 있어도 Postgres에 상태를 저장해 정확히 마지막 스텝부터 다시 이어서 실행할 수 있음
  • step.run({ name }, fn)한 번만 실행되고 결과가 메모이즈되기 때문에, 크래시 후 재시작 시 카드 결제·이메일 발송 같은 부작용을 중복 실행하지 않고 캐시된 결과를 재사용
  • 별도 전용 서버 없이 워커 프로세스(ow.newWorker({ concurrency }))가 DB에서 pending 런을 폴링하고 실행하는 구조라, 워커를 여러 개 띄워 고가용성·스케일아웃이 가능하고, step.sleep("id", "1h") 같은 장기 sleep도 워커 슬롯을 점유하지 않음
  • 워크플로 입력/출력 제너릭, 버전 필드(version: "v2"), run().result(), handle.cancel() 등을 통해 타입 안전한 정의·버전 관리·결과 조회·취소를 모두 코드 레벨에서 다룰 수 있게 설계됨
  • 플러그인 아키텍처를 통해 외부 시스템과의 확장 및 커스터마이징 지원
  • OpenAI, Slack, GitHub, Notion 등 주요 SaaS 및 개발 도구와의 통합 지원
  • 현재는 PostgreSQL 백엔드와 기본 런타임 기능(동시 실행, 리트라이, 평행 step, sleep, 버전 관리, cancel) 에 집중
    • 이후 CLI·대시보드·idempotency key·롤백/보상 함수·신호(signals)·OpenTelemetry·Redis/SQLite 백엔드·Go/Python SDK 등이 로드맵에 올라와 있음

spring batch와 비슷한 느낌이 드네요