- Postgres 기반의 대규모 백그라운드 작업 처리 플랫폼 오픈소스
-
분산 작업 큐(Distributed Task Queue) 및 워크플로 오케스트레이션 플랫폼
- 복잡한 작업 워크플로, 실패 복구, 스케줄링, 이벤트 기반 트리거, 실시간 모니터링까지 지원
- Python, Go, TypeScript SDK 제공
- MIT 라이선스, 셀프 호스팅 및 클라우드 버전 제공
주요 기능 요약
-
큐 관리
- Postgres 기반 내구성 있는 큐 시스템
-
키 기반 큐잉 (공정한 작업 분배 구현)
-
속도 제한(Rate limiting)
-
Sticky Assignment 및 Worker Affinity
- 작업 분배, 재시도, 실패 알림 자동 처리
- Python / TypeScript / Go 예제 제공
-
작업 오케스트레이션
- DAG 기반 워크플로 구성
- 조건 기반 실행 (예: sleep, 이벤트 기반 트리거, 부모 작업의 출력값 기반 조건 실행 등)
- 복잡한 분기 로직 처리 가능
- 작업 간 의존성 정의, 다중 작업 병렬 실행
- Durable task로 중간 결과 저장 및 복구 지원
-
내구성 있는 함수 실행: 실패 시 중간 상태를 캐시하고 재실행으로 복원
-
Durable Sleep과 Durable Events도 지원
-
흐름 제어 (Flow Control)
- 사용자 단위 동시성 제한
- 글로벌 및 동적 속도 제한 (Rate Limiting)
- 전략적 작업 분산을 통한 시스템 안정성 확보
-
작업 스케줄링
-
Cron 작업, 예약 실행, durable sleep 지원
- 예: 매일 자정 실행, 특정 시간 예약, 지정 시간 대기 등
-
작업 라우팅
-
Sticky Assignment: 동일 워커에 작업 고정
-
Worker Affinity: 최적의 워커 선택 로직 적용
-
이벤트 기반 트리거
- 외부 이벤트 수신 후 작업 실행 가능
- 이벤트/슬립 조건 병합 가능
-
실시간 웹 UI
- 실시간 대시보드 및 모니터링
- 작업 로그 보기, 알림 설정 (Slack/이메일)
Hatchet를 언제 사용하면 좋을까?
- ✅ DAG 기반 워크플로 구성이 필요할 때
- ✅ 작업 실패 시 재시도 및 상태 보존이 중요할 때
- ✅ 사용자가 많은 애플리케이션의 작업 분산 처리
- ❌ 빠르게 셋업 가능한 간단한 큐만 필요할 때 (Celery/BullMQ 등 추천)
- ❌ 다양한 데이터 커넥터와 통합이 중요할 때 (Airflow/Prefect 등 추천)
비교: Hatchet vs 다른 솔루션들
-
Hatchet vs Temporal
- Hatchet은 큐 + DAG + Durable Execution 모두 지원
- Temporal은 Durable Execution에 최적화
- Hatchet은 셀프 호스팅이 간편 (Postgres만 필요)
-
Hatchet vs BullMQ / Celery
- Hatchet은 작업 이력 저장 + UI 시각화 + 오케스트레이션 내장
- BullMQ/Celery는 경량 큐 라이브러리지만 모니터링 기능 부족
-
Hatchet vs Airflow / Prefect
- Hatchet은 고속 실행, 낮은 레이턴시, 자체 워커 관리
- Airflow/Prefect는 데이터 파이프라인 중심으로, 통합 커넥터에 강점
요약
- Hatchet은 Postgres만으로 동작하는 현대적인 분산 작업 처리 플랫폼
- Durable, Observable, Composable한 작업 시스템을 단일 도구로 구현 가능
- 클라우드/셀프 호스팅 모두 지원되며, Python/Go/TypeScript로 쉽게 통합 가능