orion について
Orionは、JSON定義から範囲の定まったRESTおよびKafkaサービスを構築・運用する宣言型ランタイムです。小規模サービス群に共通のデプロイ、トラフィック保護、可観測性を適用したいチーム向けです。
主な機能
- 01JSONによるワークフローとチャネル定義
- 02REST、Kafka、スケジュール起動
- 03外部システム向けコネクター
- 04検証、ドライラン、バージョン展開
- 05リトライ、レート制限、トレース
活用シーン
- 01検証や価格判定APIの公開
- 02Webhookやデータ取り込みペイロードの整形
- 03Kafkaレコード処理と失敗メッセージの振り分け
- 04定期ワークフロージョブの実行
MCP 対応
このMCPサーバーはOrionの管理API全体を扱う58個のツールを公開します。MCPクライアントからOrionサービスの構築と運用に利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e ORION_SERVER_URL -e ORION_API_KEY ghcr.io/goplasmatic/orion-cli:1.1.0ORION_SERVER_URLURL of the Orion server to manage (e.g. http://localhost:8080)ORION_API_KEYシークレットAPI key, if the Orion server has admin authentication enabledローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/goplasmatic/orion-cli:1.1.0stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Orion は宣言型のサービスランタイムです。Orion サービスは、ワークフローとチャネルで構成され、必要に応じて外部システムへのコネクターを追加できます。これらの定義を登録して有効化すれば、サービスが稼働します。アプリケーションサーバーの作成、サービスごとのコンテナーの構築、ランタイムの再起動は必要ありません。
Orion は、ルーティング、イングレスガード、レート制限、タイムアウト、リトライ、サーキットブレーカー、コネクションプール、バージョンのロールアウト、ロールバック、メトリクス、トレーシングなど、周辺のインフラストラクチャを一貫して処理します。定義は開発者が記述することも、AI アシスタントが提案することもできます。いずれも同じドラフト、テスト、有効化、監査の手順に従います。
メモ
Orion は、順序付けられたタスク関数と JSONLogic で表現できる、リクエストおよびイベント形式の処理向けに設計されています。汎用アプリケーションランタイムでも、耐久性のあるワークフローエンジンでもありません。プロジェクトでの採用を決める前に、Orion が適しているケースを確認してください。
クイックスタート
この動作確認済みの手順では、Docker、curl、POSIX 互換のシェルを使用します。ローカルの Orion インスタンスを起動し、注文処理のワークフローとチャネルをデプロイして、作成した API を呼び出します。
1. Orion を起動する
docker run --name orion-quickstart -d -p 8080:8080 \
ghcr.io/goplasmatic/orion:latest
curl --retry 10 --retry-delay 1 --retry-connrefused \
http://localhost:8080/healthz
2. サンプルを確認してデプロイする
curl -fsSLo /tmp/orion-quickstart.sh \
https://raw.githubusercontent.com/GoPlasmatic/Orion/main/examples/quickstart.sh
less /tmp/orion-quickstart.sh
bash /tmp/orion-quickstart.sh
このスクリプトは、管理用 API を4回呼び出します。ワークフローを作成して有効化した後、チャネルを作成して有効化します。最後にテストリクエストを実行し、繰り返し実行しても安全です。クローンしたリポジトリから実行する場合は、代わりに./examples/quickstart.shを実行してください。
3. サービスを呼び出す
curl -fsS -X POST http://localhost:8080/api/v1/data/orders \
-H 'Content-Type: application/json' \
-d '{ "data": { "order_id": "ORD-0001", "total": 12500 } }'
レスポンスには、"flagged": trueを含む解析済みの注文が返されます。ワークフローがビジネスロジックを担い、チャネルがPOST /ordersでそれを公開します。ルーティング、検証、トレーシング、ライフサイクル管理は Orion が提供します。
期待される出力、トラブルシューティング、Windows で使いやすいインストール方法、クリーンアップ手順については、クイックスタートの完全版を参照してください。
基本モデル
flowchart LR
Request["HTTP request, Kafka record, or schedule"] --> Channel
Channel["Channel<br/>route + ingress policy"] --> Workflow
Workflow["Workflow<br/>ordered business logic"] --> Connector
Connector["Connector<br/>external system"]
Workflow --> Response["Response or stored trace"]
| 基本要素 | 目的 | 例 |
|---|---|---|
| チャネル | トラフィックを受け取り、イングレスポリシーを適用します | POST /orders、Kafka トピック、0 15 2 * * * order.placed |
| ワークフロー | 順序付けられたタスクパイプラインとしてビジネスロジックを実行します | 解析 → 検証 → 拡充 → 応答 |
| コネクター | 外部システムへの再利用可能な接続を提供します | PostgreSQL、Redis、Kafka、REST API |
1つのサービスに属する定義は、まとめてパッケージとして出荷できます。1つの Orion インスタンスで複数のパッケージを並行して実行でき、それぞれ独自のライフサイクルとロールアウトを持ちます。
Orion の仕組みでは、リクエストの実行、合成、デプロイトポロジー、拡張の境界について、1ページで説明しています。
構築できるもの
- マイクロサービスと意思決定 API: HTTP 経由で、変換、検証、価格設定、適格性、ルーティングの判断を公開します。
- Webhook とデータ取り込みサービス: 受信ペイロードを正規化し、管理されたコネクターを通じて外部システムの読み取りや書き込みを行います。
- Kafka コンシューマー: レコードを処理し、結果を公開し、失敗したメッセージをデッドレタートピックにルーティングします。
- AI エージェント向けツール: 管理された HTTP 操作を公開します。アシスタントは、Orion CLI とエージェントスキルを使って、それらの操作を下書きし、ドライランし、有効化し、ロールバックできます。
- スケジュール済みジョブ: リクエスト時ではなく cron 式に基づいてワークフローを実行し、スケジュールされた各実行時刻を永続的な実行記録として保存します。
- 合成可能なサービス:
channel_callを使って別のチャネルをプロセス内で呼び出し、呼び出し先のガードを維持しながら、循環を防止します。
何を構築しますか?から目的に合ったパスを選ぶか、テスト済みのパッケージをexamples/packages/からデプロイしてください。
ランタイム機能
| 領域 | 含まれる機能 |
|---|---|
| トラフィック | REST、プレーン HTTP、同期および非同期チャネル、Kafka ingress、cron スケジュール |
| 安全性 | ペイロード検証、API キー/HMAC/JWT によるチャネル認証、レート制限、バックプレッシャー、CORS 制御 |
| レジリエンス | タイムアウト、再試行、サーキットブレーカー、冪等性、レスポンスキャッシュ、デッドレター処理 |
| デリバリー | 下書き、不変バージョン、ドライラン、パーセンテージによるロールアウト、ロールバック、パッケージ、WebAssembly プラグイン、サービス開始前に承認された ONNX モデル |
| 可観測性 | ヘルスおよびレディネスエンドポイント、Prometheus メトリクス、構造化ログ、OpenTelemetry トレース |
| データ | PostgreSQL、MySQL、SQLite、MongoDB、Elasticsearch、Redis、Kafka、HTTP、SMTP、S3 互換ストレージ |
| 運用 | 1 ノードでは組み込み SQLite、クラスター化されたレプリカでは PostgreSQL/MySQL と Redis |
設定は明示的であり、いくつかの本番環境向け制御は、ローカル開発では許可範囲が広いか、無効になっています。特に、データチャネルは、認証を宣言するか、認証プロキシの背後に置かない限り、開放されています。インスタンスを公開する前に、本番環境チェックリストを確認してください。
AI が生成した変更を含む、安全な変更
flowchart LR
Author --> Draft --> Validate --> DryRun["Dry-run"] --> Activate --> Rollout --> Observe
Observe -->|problem| Rollback
ワークフロー、チャネル、コネクターの定義には、作成者を問わず、同じ管理されたライフサイクルが適用されます。下書きはトラフィックを処理しません。検証とドライランを行い、特定のバージョンを承認して、サーバーを再起動せずに有効化できます。また、パーセンテージでトラフィックを段階的に移行し、以前の不変バージョンに戻すこともできます。管理上の変更は監査ログに記録されます。
AI を活用した作成には、Orion エージェントスキルをインストールするか、自己完結型のプロンプトパックを使用してください。Claude Code チュートリアルでは、支援を受けながらワークフローを一通り進める方法を紹介しています。
Orion が適しているケース
Orion は、HTTP リクエストまたは Kafka レコードを起点として処理を開始し、 有界なパイプラインとして完了し、Orion のタスク関数と JSONLogic で表現できる サービスに適しています。多くの小規模なサービスで、同じ運用およびガバナンスの 基盤が必要な場合に特に役立ちます。
次のような場合は、別のランタイムを選ぶか、Orion と組み合わせてください。
- 中間ステップで再起動後も処理を継続する必要がある場合や、数時間から数日間待機する必要がある場合。
- イングレスで gRPC、WebSockets、またはストリーミング応答が必要な場合。
- ビジネスロジックで I/O を伴う任意のコードやスクリプトランタイムが必要な場合。純粋な変換処理はサンドボックス化された WebAssembly プラグインとしてデプロイできますが、別のシステムへのアクセスが必要な処理には対応できません。
- 画像処理、GPU クラスの推論、または大規模なインメモリ結合がホットパスに含まれる場合。小規模な ONNX グラフは、ガバナンス対象のモデルとしてプロセス内で実行できますが、大規模なものには対応できません。または
- 完全な OIDC フローや相互 TLS をデータプレーン内で終端する必要がある場合。JWT 検証は組み込みですが、これらのフローにはゲートウェイまたはサービスメッシュが必要です。
永続実行エンジン、API ゲートウェイ、自動化プラットフォーム、ルールエンジン、および組み込みの dataflow-rs との詳細な比較については、Orion はあなたに適していますか?をご覧ください。
インストール
現在のワークスペースリリースは 1.12.0 で、ソースからビルドする場合は Rust 1.98 が必要です。サーバーと CLI は同時にリリースされます。バージョンを一致させて使用してください。
# Homebrew: macOS Apple Silicon and Linux
brew install GoPlasmatic/tap/orion-server
brew install GoPlasmatic/tap/orion-cli
# Server from source
cargo install --git https://github.com/GoPlasmatic/Orion --locked orion-server
# Server and CLI from source
cargo install --git https://github.com/GoPlasmatic/Orion --locked \
orion-server orion-cli
Linux、macOS Apple Silicon、Windows 向けのリリースインストーラーも利用できます。すべてのインストール方法、プラットフォームのサポート、起動、および検証については、インストールと実行をご覧ください。
ローカルで役立つコマンド:
orion-server validate-config -c config.toml
orion-server fmt ./definitions
orion-server lint workflow.json
orion-server clippy ./definitions
orion-server dry-run -w workflow.json -i input.json
orion-server test examples/workflow-tests
orion-server compile ./definitions -o package.json
orion-server package apply -s http://localhost:8080 -f package.json
すべてのコマンドとフラグについては、サーバーコマンドリファレンスとOrion CLI リファレンスをご覧ください。
パフォーマンス
公開されている Orion 1.0.0 のベンチマークでは、1 台の Apple M2 Pro インスタンスで毎秒 5.1K~5.7K 件のワークフローリクエストを測定しました。記録されたワークフローの各シナリオで、平均レイテンシは 1 桁ミリ秒でした。これらはリリースおよびワークロード固有の結果であり、処理能力を保証するものではありません。ハードウェア、シナリオ、テールレイテンシ、クラスターの結果、再現手順については、ベンチマーク記録をご確認ください。
ドキュメント
マニュアル全文は docs.goplasmatic.io にあります。
| 目的 | まずはこちら |
|---|---|
| Orion を試す | クイックスタート |
| モデルを理解する | Orion の仕組み |
| サービスを完成させる | Orders API のゴールデンパス |
| 正確なスキーマを探す | リファレンスの索引 |
| デプロイと運用 | Orion の運用 |
| 本番環境を保護する | 本番環境のチェックリスト |
| 安全にアップグレードする | アップグレード |
| 互換性を確認する | サポートと互換性 |
ドキュメントのソースは docs/src/ にあります。生成された docs/book/ の出力ではなく、このディレクトリを編集してください。構成と編集上の規則については、docs/STYLE_GUIDE.mdをご覧ください。
プロジェクトとコミュニティ
- Orion UI は、ブラウザー上で利用できる運用コンソールを提供します。
orion-cliを使うと、ターミナルからワークフロー、チャンネル、コネクター、プラグイン、スケジュールを管理できます。CONTRIBUTING.mdでは、開発環境のセットアップ、テスト、プルリクエストについて説明しています。- 質問には GitHub Discussions を、バグの報告には GitHub Issues をご利用ください。
- 脆弱性は、
SECURITY.mdに従って非公開で報告してください。 - Orion をご利用の場合は、
ADOPTERS.mdにプロジェクトを追加してください。
Orion は Plasmatic によって開発され、Apache License 2.0 の下でリリースされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。