Erlang/OTPに着想を得たGo向けアクターモデルフレームワーク。監視機能とネットワーク透過性を備えた分散システムを構築できます。
dotnet/orleans
仮想アクターモデルを使って、分散型でスケーラブルなクラウドアプリケーションを構築するクロスプラットフォームの .NET フレームワーク。
- スター
- 10,913
- フォーク
- 2,148
- 未解決の Issue
- 645
- 最終コミット
- 4 時間前
これは何?
Orleans は、オブジェクト、インターフェイス、async/await、例外といった .NET でおなじみの概念を分散システムで利用できるようにします。開発者はアプリケーションのエンティティをグレインとしてモデル化します。グレインは安定した ID と振る舞いを持ち、必要に応じて状態も保持します。Orleans ランタイムは必要に応じてグレインをアクティブ化し、アイドル状態のグレインを非アクティブ化して、シロのクラスター全体からグレインを検索します。そのため、呼び出し側のコードがグレインをホストするサーバーを把握する必要はありません。
グレインは任意のストレージシステムに状態を保存でき、タイマー、永続リマインダー、直列化可能な分離レベルを備えた分散 ACID トランザクション、Azure Event Hubs や Amazon Kinesis などのキューを基盤とするマネージドストリーム、設定可能なグレイン配置などの機能を利用できます。クラスターは単一のシロから複数のシロへスケールでき、シロの障害からも復旧できます。
Orleans は .NET Standard 2.0 およびそれ以降の .NET ランタイムを使って Windows、Linux、macOS で動作し、Kubernetes、仮想マシンまたは物理マシン、Azure App Service などの PaaS サービスにデプロイできます。
主な機能
- 01安定した ID を持ち、任意のストレージシステムに永続状態を保存できるグレイン
- 02中央コーディネーターを必要としない、直列化可能な分離レベルの分散 ACID トランザクション
- 03Azure Event Hubs や Amazon Kinesis などのキューイングサービスを基盤とするマネージドストリーム
- 04スケジュール処理に使える永続リマインダーと非永続タイマー
- 05設定可能なグレイン配置ポリシーとグレインインターフェイスのバージョニング
- 06認可、ログ記録、エラー処理に使えるグレイン呼び出しフィルター
ユースケース
- 各デバイスをデジタルツインのグレインとしてモデル化する IoT バックエンドの構築
- 複数サーバーにわたってスケールアウトする、ステートフルで低レイテンシーなクラウドサービスの開発
- チェックポイントを利用するコンシューマーによる、ほぼリアルタイムのイベントストリーム処理
- 単一サーバー上の .NET アプリケーションを、耐障害性のある分散サービスへ段階的に移行
使う前に知っておきたいこと
- アプリケーションの構築には、.NET エコシステムと C# が必要です。
- 分散アプリケーション向けのフレームワークであるため、クラスターを実行するには、単一プロセスのアプリと比べてセットアップや運用の手間が増えます。
収録されている特集
トピック
よくある質問
- orleans とは?
- 仮想アクターモデルを使って、分散型でスケーラブルなクラウドアプリケーションを構築するクロスプラットフォームの .NET フレームワーク。 Orleans は、オブジェクト、インターフェイス、async/await、例外といった .NET でおなじみの概念を分散システムで利用できるようにします。開発者はアプリケーションのエンティティをグレインとしてモデル化します。グレインは安定した ID と振る舞いを持ち、必要に応じて状態も保持します。Orleans ランタイムは必要に応じてグレインをアクティブ化し、アイドル状態のグレインを非アクティブ化して、シロのクラスター全体からグレインを検索します。そのため、呼び出し側のコードがグレインをホストするサーバーを把握する必要はありません。
- orleans は無料で使えますか?ライセンスは?
- orleans は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- orleans は今もメンテナンスされていますか?
- 活発にメンテナンス中。orleans の最終コミットは 2026年10月24日 です。
- orleans は何に使えますか?
- 各デバイスをデジタルツインのグレインとしてモデル化する IoT バックエンドの構築 複数サーバーにわたってスケールアウトする、ステートフルで低レイテンシーなクラウドサービスの開発 チェックポイントを利用するコンシューマーによる、ほぼリアルタイムのイベントストリーム処理 単一サーバー上の .NET アプリケーションを、耐障害性のある分散サービスへ段階的に移行
- orleans はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/dotnet/orleans
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
NATS serverは、サービス、デバイス、エッジシステムをつなぐ高性能なメッセージングシステムで、CNCFの一員です。
Rivetは、Podベースのスケジューリングに代わる、エージェント、ワークフロー、リアルタイムアプリ向けの永続状態を持つActorをスケジュールするオープンソースのオーケストレーターです。
Tokioランタイム上で型付きメッセージをやり取りするRust製アクターフレームワーク。スーパービジョンにも対応。
強整合性のKey-Valueストアを基盤とし、PostgreSQL wire protocol互換のクラウドネイティブな分散SQLデータベースです。
バックグラウンドタスク、AIエージェント、永続ワークフローをオーケストレーションするエンジン。Python、TypeScript、Go、RubyのSDKを備え、永続化レイヤーにPostgresを採用。