Hatchet

Hatchet

Hatchet · コーディング · 生産性向上

Hatchetはバックグラウンドタスク、AIエージェント、耐久実行のワークフローを束ねるオープンソースのエンジンだ。ワーカーは自社クラウドで動き、実行履歴は残るので再試行も再生もできる。

Hatchet の画面プレビュー

Hatchet について

About

Hatchetとは

Hatchetは、関数を書けるチーム向けのタスクオーケストレーションプラットフォームだ。その周りにあるキューの世話をしたくない、という前提で作られている。タスクをコードで定義し、ワークフローに組み上げれば、スケジューリング、再試行、同時実行の上限、実行履歴はエンジン側が持つ。

設計上もっとも効くのは、コードがどこで動くかという点だ。ワークフローオーケストレーションエンジン自体はマネージドサービスで、ワーカーは自社インフラに置く。Kubernetes、ECS、Railway、開発中のノートPCでも構わない。顧客データは自社クラウドに残り、Postgres上のエンジンに渡るのはスケジューリング用のメタデータだけだ。

狙っているのは、バックグラウンド処理が2本から20本に増えたときに訪れる混沌だ。自作のcronスクリプト、再試行を手書きしたキュー、別系統のパイプライン基盤が、それぞれ一部分だけを解いている。ここではモデルは一つで済む。タスクは関数、関数は状態を保持し、失敗はスタックトレース付きで見える。

限界もはっきりしている。Hatchetはコードを書く人向けのインフラだ。ビジュアルなワークフロー作成画面も、ノーコードのキャンバスもない。ダッシュボードだけを触って本番ワークフローを組み上げることはできない。Python、TypeScript、Go、Rubyを書かないチームには向かない。

はじめかた

  1. hatchet.runでアカウントを作り、ダッシュボードからAPIトークンを取得する。無料枠にクレジットカードは要らない。
  2. SDKをインストールし、最初のタスクを普通の関数として書く。入出力には型を付ける。
  3. タスクをワーカーに登録し、自社環境でそのプロセスを起動してHatchetに接続させる。
  4. 自社API、cron式、外部イベントのいずれかからタスクを起動し、ダッシュボードで実行を開いて各ステップを追う。
  5. 正常系が動いたら再試行ポリシーと同時実行の上限を足し、テナントを分けて環境を切り離す。

AIツール情報

Hatchetの料金、対応プラットフォーム、性能を簡単に確認できます。

無料プランはい
有料プラン$0 - $30 per million task runs
プラットフォームCloud, self-hosted, Python, TypeScript, Go, Ruby SDKs
開発元Hatchet
カテゴリコーディング · 生産性向上
リリース日Dec 2023
最終更新Oct 2026
サイト訪問数110K
サイト世界ランキング225K
API提供状況はい

こんな人におすすめ

このツールが最も力を発揮するユーザー、タスク、シーン。

ユーザー

  • 自作のバックグラウンドタスクキューを畳みたいバックエンドエンジニア。移行は関数を包み直す作業で済み、サービス全体の書き換えは要らない。ワーカーの運用を自チームで持つ前提だ。
  • 多段のエージェントを回すAIプロダクトチーム。時間のかかるツール呼び出し、モデルの再試行、並列のファンアウトがタスクモデルに収まる。各ステップをコードで書けることが条件になる。
  • テナント間の公平性に悩むデータ・基盤チーム。同時実行キーとテナント別の上限が最初から入っているので、自前の流量制御を一つ減らせる。
  • 後からセルフホストを見据えるスタートアップ。MITライセンスなので、クラウドで始めても自社ハードへ移せる。タスクの書き換えは不要だ。

タスク

  • バックグラウンドジョブの処理。メール送信、PDF生成、画像リサイズ、webhookのファンアウトを自動再試行と完全な履歴付きで回せる。
  • AIエージェントオーケストレーション。検索、モデル呼び出し、検証、配信を分ければ、モデル呼び出しの失敗で全体をやり直さずに済む。
  • 定期実行とイベント駆動のワークフロー。cronとwebhookの受け口が、cronサーバーとキューの消費者という寄せ集めを置き換える。
  • 大規模な取り込みパイプライン。並列ステップとバックログ上限があるので、トラフィックの急増でシステム全体が落ちない。

シーン

  • 金曜の午後に誰も触りたくない脆いcron設定から抜けたいとき。
  • 30分かかる調査エージェントを、途中のデプロイをまたいで走らせたいとき。
  • 新サービスを初日からユーザー単位で公平にさばきたいとき。締切前に即席のレートリミッターを書かずに済む。

主な機能

Postgresに支えられた耐久実行

タスクと状態遷移はすべてPostgresに書き込まれる。ワーカーが落ちても進行中の処理は消えない。耐久実行では実行を一時停止し、待機し、後から再開できる。デプロイや障害の後でも同じだ。失敗した実行はダッシュボードから再生できるので、入力内容を推測する必要はない。

同時実行、レート制限、公平性

同時実行の上限は入力フィールドをキーにできる。ひとつの顧客が全スロットを占める事態は起きない。全体と動的なレート制限に加えて、優先度と公平性のルールも用意されている。多テナントのキューで、たいていのチームが手書きして後悔する部分だ。

子タスクによるワークフロー構成

タスクはDAGに組み上げられ、実行時に子タスクを生み出せる。数千件の文書を並列で処理するようなファンアウトに向く。出力は依存ステップへ自動で渡り、子タスクはそれぞれ再試行設定を持つ。各ステップが普通の関数なので、長いワークフローでも読みやすい。

イベント、cron、webhookの起動

ワークフローは自社API、cron式、指定時刻、受信イベントから起動する。webhookの受け口が内蔵されているので、StripeやGitHubのコールバックを受けるためだけに別サービスを立てなくていい。イベントは再投入もできる。下流システムが落ちていたときに効く。

OpenTelemetryによる可観測性

HatchetはOpenTelemetryコレクターを内蔵し、実行ごとにトレースとスパンを生成する。既存の監視基盤へそのまま転送できる。アプリケーションログはダッシュボードで全文検索と絞り込みができる。失敗の通知は、顧客がメールの不在に気づく前に届く。

SDKと上限なしのセルフホスト

公式SDKはPython、TypeScript、Go、Rubyをカバーし、同じタスク定義がクラウドでも自社環境でも動く。セルフホストではエンジン、ダッシュボード、Postgresをまとめて動かす。MITライセンスなので実行回数の上限はない。無料枠で始めたチームが後から社内へ移しても、タスクは書き換えずに済む。

メリットとデメリット

メリット

  • タスクモデルが小さい。関数ひとつ、型付き入力、型付き出力。多くのエンジニアは半日で形にできる。
  • 実行履歴が実用的で、ステップごとの状態、ログ、再生が揃う。テキストログを目で追う作業が減る。
  • 同時実行キーとレート制限が一級の機能として入っており、自前の流量制御コードを一層まるごと省ける。
  • MITでのセルフホストが現実的な選択肢で、オープンソース版は機能を削ったデモではない。

デメリット

  • ワーカーの配備とスケールは自前のままで、運用負荷は消えずに移動するだけだ。
  • ビジュアルなワークフロー作成画面がないため、非エンジニアに自動化を触らせたいチームには合わない。
  • 実行量が非常に多い場合、従量課金は固定の月額より見通しを立てにくい。
  • ダッシュボードは実行とキューの把握に寄っており、事業分析は別ツールが要る。

よくある質問

一定の範囲なら無料だ。クラウドの無料枠は月100万回の実行と100万件のイベントを含み、クレジットカードは要らない。MITライセンスのエンジンをセルフホストする場合、費用は自社インフラの分だけになる。