今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
今日の優良食堂 · ギット飯が代わりに導入・分析

iii-hq/iii

複数言語対応のランタイムで、マイクロサービス・エージェント・キューをシームレスに統合・実行するシステム

CLIで新しいワーカーを追加するだけで、キュー・クロン・状態管理・オブザーバビリティが1つのランタイムに自動でカタログ化される様子を、まず手元で見てみたくなります。マイクロサービス間のポイントツーポイント統合を書く代わりに、ワーカー・関数・トリガーという3つのプリミティブだけで機能を表現できるので、複雑な連携ロジックが消えていく感覚を実際に味わえます。Node.js・Python・Rust・Goなど複数のSDKが揃っており、開発者もAIエージェントも同じ関数インターフェースと呼び出し経路で動くため、エージェントに機能を動的に探索・呼び出しさせる実験も今日から試せます。

01 / 概要
何をするものか一文で言うと
ひとことで複数言語対応のランタイムで、マイクロサービス・エージェント・キューをシームレスに統合・実行するシステム

iiiは、Worker・Function・Triggerという3つの基本要素で、あらゆるバックエンドサービスを構成・拡張・観測できる基盤です。CLIで`iii worker add <capability>`を実行するだけで、キューやエージェントなどの機能をライブカタログに追加でき、追加した瞬間から他のworkerが呼び出せます。エージェントも同じインターフェースでworkerを追加し、呼び出し、トレースできる設計です。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

Rust製のengineが中核にあり、workerプロセスの登録、function・triggerカタログの管理、ルーティングを担います。CLIやTypeScript・Python・RustのSDK経由でworkerを起動すると、engineに接続し自分のfunctionとtriggerを宣言的に登録します。triggerはHTTP、cron、queue購読、state変化など多様で、Workerは『この関数はこれが起きたら動く』と定義するだけで、配信やシリアライズはengine側が担当します。console-rustとconsole-frontend(React)から成るconsoleは、WebSocketやREST APIでengineのworker一覧・trace・queue・log・alertを取得して可視化します。console-frontendのソースにはworkers、traces、alerts、samplingなどengine APIへのフェッチ関数が数多く存在し、これがconsole UIの裏付けになっています。release-iiiやdocker-engine、publish-worker-skillsなどのCIワークフロー群は、engineとworkerとskillのビルド・配布を自動化しています。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    install.sh をシェルで実行すると、iii バイナリがダウンロードされ、ローカルにCLIとしてインストールされます。

  2. STEP 02

    iii project init myapp を実行すると、プロジェクトの雛形ファイルが生成されます。

  3. STEP 03

    cd myapp のあとに iii を実行すると、engineプロセスが起動し、ブラウザでconsoleにアクセスできる状態になります。

  4. STEP 04

    iii worker add queue のようなコマンドを叩くと、workers.iii.dev のカタログからworker定義を取得し、プロジェクトに追加します。

  5. STEP 05

    console のflow画面を開くと、登録済みのworkerやqueue、traceがリアルタイムに表示されます。

  6. STEP 06

    consoleのフロントエンドはVite開発サーバーで動き、console-rustは別途cargo buildでビルドする必要があります。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

実行すると、稼働中のengineプロセスと、登録済みworkerのライブカタログが手に入ります。consoleを開けば、worker一覧やfunction呼び出しのtrace、queueの状態、logをブラウザで確認できます。開発者はfunctionのコードを書きtriggerを宣言するだけで、queueやobservabilityツールごとの個別統合作業なしに、新しいcapabilityをシステムへ組み込めます。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

workers.iii.dev で配布されている実際のworkerの種類や品質は、今回のファイル一覧からは確認できません。

02

engineコア(engine/ディレクトリ)の内部ロジックは、今回参照した代表ファイルには含まれておらず、詳細は未検証です。

03

consoleを本番用に動かすには console-rust を cargo build --release で別途ビルドする必要があり、フロントエンドと合わせるREBUILD_FRONTENDフラグなど手順がやや複雑です。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

複数言語のサービスを1つのランタイムでつなぎ、queueやagent、observabilityを統一的に足していきたいチームに向いています。READMEの『iii worker add』という体験や、console-frontendに実装されたworkers・traces・alerts向けのAPI呼び出しコードから、CLIでworkerを追加しconsoleで観測するという流れは裏付けが取れます。ただしengineコアの実装詳細やworkerカタログの中身までは本レビューで直接確認しておらず、そこは導入前に実機で確かめることをおすすめします。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する