Dapr
状態管理、Pub/Sub メッセージング、サービス呼び出し、ワークフローといったマイクロサービスの構成要素を、任意の言語からサイドカー API 経由で利用できるポータブルなランタイムです。
概要
Dapr(Distributed Application Runtime)は、マイクロサービス、イベント駆動システム、AI エージェントを、各サービスごとに同じ分散システムの基盤処理を自前で作り込むことなく構築するための、オープンソースかつ CNCF を卒業したランタイムです。アプリケーションと並んでサイドカーとして動作し、サービス間呼び出し、状態管理、Pub/Sub メッセージング、ワークフローオーケストレーション、シークレット管理といった構成要素を標準の HTTP と gRPC 経由で公開するため、Dapr 専用の SDK がなくてもどの言語からでも利用できます。とはいえ .NET、Java、Python、Go、JavaScript/TypeScript、Rust 向けのネイティブ SDK も用意されています。
これらの機能はアプリケーションコードに直接組み込まれるのではなく Dapr の API 経由でアクセスされるため、どのメッセージブローカーを使うか、どの状態ストアを使うか、どのシークレットボールトを使うかといった基盤インフラは、アプリケーションコードを変更することなく設定だけで切り替えられます。同じ構成要素が Kubernetes、他のクラウド、エッジ、ローカルマシンのいずれでも一貫して動作します。
Dapr は、マイクロサービスやイベント駆動型バックエンドを構築していて、分散システムのプリミティブをサービスごとに再実装するのではなくインフラとして利用したいチームに向いています。カタログにある Supabase や Appwrite のような BaaS(Backend as a Service)プラットフォームとは異なる抽象化レイヤーです。それらは独自のデータモデルを持つ、こだわりのあるバックエンドを提供するのに対し、Dapr はチームが自分たちのサービスに組み込む、こだわりのない構成要素を提供します。
- カテゴリ
- バックエンド
- 言語
- Go
- ライセンス
- Apache-2.0
関連プロジェクト
NATS
Apache-2.0シンプルさと低い運用負荷を重視して構築された、クラウドネイティブアプリケーション向けの軽量で高性能なメッセージングシステムです。
- バックエンド
Quarkus
Apache-2.0高速な起動時間と少ないメモリフットプリントのために設計された、コンテナやサーバーレスに適した Kubernetes ネイティブな Java フレームワークです。
- バックエンド
RabbitMQ
MPL-2.0AMQP、MQTT、STOMP に対応し、信頼性の高いキューとルーティング、Pub/Sub メッセージングでサービスを疎結合にする、成熟した広く導入されているメッセージブローカーです。
- バックエンド
Apache Kafka
Apache-2.0データを永続的で再生可能なログとして保存する分散イベントストリーミングプラットフォームで、従来の1対1のキューイングではなく高スループットなリアルタイムパイプライン向けに構築されています。
- バックエンド
誤りを見つけましたか? GitHub で修正を提案する