Upgrade to Pro — share decks privately, control downloads, hide ads and more …

.NET でアクターモデルをOrleansかDaprでやりたい

Tomohisa Takaoka
January 11, 2025
160

.NET でアクターモデルをOrleansかDaprでやりたい

株式会社ジェイテックジャパン 高丘 知央
2024年1月11日 (土曜日)
.NET Conf 2024 Osaka x Fukuoka

#dotnetconf

https://tfsug.connpass.com/event/336235/participation/#participants

https://fukuten.connpass.com/event/333954/participation/#participants

Tomohisa Takaoka

January 11, 2025
Tweet

More Decks by Tomohisa Takaoka

Transcript

  1. ネットシェア可 ⾃⼰紹介 X: @tomohisa Github: @tomohisa Works at : 株式会社ジェイテックジャパン,

    J-Tech Creations, Inc. JTS Group - 株式会社ジャパンテクニカルソフトウェア 品川 CTO: 中⼩企業向けの受託開発を、モダンな開発スタイルで。 Microsoft MVP for Developer Technologies (Web Development, .NET) new from November 2024 - OSS: Sekiban - Event Sourcing and CQRS Framework ResultBoxes - Railway Oriented Programing Library. ⾼丘 知央 - Tomohisa Takaoka 2 / 14
  2. ネットシェア可 .NET でアクターモデルをOrleansかDaprでやりたい セッション概要 • 1. なぜアクターモデルが必要か? • 2. .NETでのアクターモデルの選択肢

    ◦ Orleans ◦ Akka.Net ◦ Dapr • 3. OrleansとDaprの違い • 4. まとめ みなさん、バックエンドで複数サーバーで同じデータを更新しようとして 困ることがありますか? - 僕はあります 3 / 14
  3. ネットシェア可 3. OrleansとDapr、Akka.NETの違い 9 / 14 Akka.NET Akka (java) の流儀に倣ったピュアなアクターモデル(ツリー形式)

    スピードが速い コントロールのためのコードを書く+アクターの流儀で書かないといけない Orleans Microsoft Researchでアクターモデルをベースにした、仮想アクターモデル。 ツリー管理ではなく(型+ID)で管理するため使いやすい サーバー間通信をするのに、普通の await grain.method(param); みたいにかける サーバー間通信のためにシリアライズが⾛り、少し遅いことがある Dapr Microsoft で開発 2019 Orleansを分散システム向けに作り直した感じのVirtual Actor Model 複数⾔語でかける。C#のアクターとTypescriptのアクター、Goのアクターを混ぜられる ネットワーク通信によるオーバーヘッドが⼼配 Sidecarようのサーバーを⽴てる数が増える
  4. ネットシェア可 まとめ 13 / 14 • ステートの同時書き込みなどを制限するため に、アクターモデルは便利 • Akka,

    Orleans, Dapr それぞれいいとこある • 最近の改善がすごいので、Orleans使って、 Sekiban の分散システム対応を⾏なっていき ます。 • Orleans組み込みのイベントソーシングは ちょっと古いので、⾃前でイベントソーシン グ連携機能は作っていく