Repolode
dotnet

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 の数値は毎日更新されます。

関連プロジェクト