Launch HN: Hatchet (YC W24) – 오픈 소스 작업 큐, 클라우드 버전 추가
안녕하세요 HN 커뮤니티 여러분. 저희는 Hatchet(https://hatchet.run)의 Alexander와 Gabe입니다. 저희는 Python용 Celery나 Node용 BullMQ 같은 기존 도구들의 대안이 될 수 있는 모던한 작업 큐를 구축하고 있습니다. 저희 오픈 소스 레포지토리는 https://github.com/hatchet-dev/hatchet에 있으며, 100% MIT 라이선스를 따릅니다.
몇 달 전 Show HN을 진행했을 때(https://news.ycombinator.com/item?id=39643136), 저희 클라우드 버전은 초대 기반(invite-only)이었고, 오픈 소스 제공에 초점을 맞추었습니다.
오늘 저희는 누구나 플랫폼에서 작업을 생성하는 것을 시작할 수 있도록 셀프 서비스 클라우드를 출시합니다. https://cloud.onhatchet.run에서 시작할 수 있으며, 다음 자격 증명을 사용하여 데모에 접속할 수도 있습니다(사전 채워져 있어야 함):
URL: https://demo.hatchet-tools.com
이메일: [email protected]
비밀번호: HatchetDemo123!
현재 사람들은 다양한 사용 사례를 위해 Hatchet을 사용하고 있습니다: RAG 파이프라인 오케스트레이션, 사용자 알림 큐잉, 에이전트 기반 LLM 워크플로우 구축 또는 GPU에서 이미지 생성 작업 스케줄링 등입니다.
저희는 기존 도구들에 대한 좌절감과 PostgreSQL이 작업 큐에 가장 적합한 선택이라는 확신을 바탕으로 이 시스템을 구축했습니다. 많은 개발자들이 이미 자신의 스택에서 Postgres를 사용하고 있어 Hatchet을 셀프 호스팅하기가 더 쉽다는 점 외에도, Postgres에서는 작업 체인(workflows)과 같은 고차원적인 개념(higher-order concepts)을 모델링하는 것이 더 쉽습니다. 저희 시스템에서는 작업의 승인(acknowledgement), 작업 결과(task result), 그리고 고차원 모델에 대한 업데이트가 동일한 Postgres 트랜잭션(transaction)의 일부로 처리되므로, 다른 작업 큐(일반적으로 브로커를 통해 승인을 전달하고, 작업 결과를 다른 곳에 저장한 다음, 그 후에야 체인의 다음 작업을 파악하는 방식)와 비교했을 때 데이터 손실/경쟁 조건(race conditions) 위험을 크게 줄여줍니다.
또한 저희는 Celery 같은 도구들과 그것이 현대적인 Python 스택(> 3.5)에서 사용될 때 야기하는 어려움에 점점 더 좌절감을 느꼈습니다. 이러한 좌절감 목록은 여기에서 작성했습니다: https://docs.hatchet.run/blog/problems-with-celery.
Show HN 이후, 저희는 해당 게시물에서 나온 가장 일반적인 피드백 중 일부를 (부분적으로 또는 완전히) 해결했으며, 이를 여기에 정리하겠습니다:
- 가장 많이 요청된 기능은 팬아웃 워크플로우(fanout workflows)에 대한 내장 지원이었습니다. 즉, 하나의 작업이 임의의 수의 자식 작업을 병렬로 실행하도록 트리거하는 것입니다. 이전에는 DAG 실행만 지원했습니다. 저희는 이 개념을 일반화하여 자식 워크플로우(child workflows)(https://docs.hatchet.run/home/features/child-workf)를 출시했습니다.