Findy Tools
開発ツールのレビューサイト
検索結果がありません

マイクロサービス・マルチプロダクトのためのスキーマ駆動型イベントバス

Xのツイートボタン
このエントリーをはてなブックマークに追加
Xのツイートボタン
このエントリーをはてなブックマークに追加

マイクロサービス・マルチプロダクトのためのスキーマ駆動型イベントバス

会員限定コンテンツです。無料登録すると制限なしでお読みいただけます。
無料登録してアーキテクチャを見る
最終更新日 投稿日

アーキテクチャの工夫ポイント

アーキテクチャ選択の背景や意図

マイクロサービスアーキテクチャでは、サービスが増えるほど通信経路が複雑化し、互いの依存関係が強くなるという課題があります。

イベントバスは、この依存関係と経路管理の問題を解決するための中核的な仕組みです。
各サービスはイベントバスという共通の仲介役へイベントを送信するだけでよく、サービス間の疎結合が実現します。
これにより、通信経路の管理が劇的に簡素化され、一つのサービスの障害が全体に広がるカスケード障害も抑制できます。

さらに、この仕組みを堅牢で信頼性の高いものにする機能があります。

スキーマによる品質保証

Protocol Bufferでデータの型や構造、protovalidateで値の正当性を定義・検証することで、サービス間のデータ品質と互換性を担保します。

セキュアな通信

JWTを用いた認証・認可により、許可されたサービスのみが安全にイベントを送受信できる環境を確保します。

このようにスキーマ駆動イベントバスは、単に依存関係を緩和するだけでなく、スキーマによる品質保証やセキュリティ機能を通じて、安全で開発効率の高いシステム構築を可能にしています。

現在の課題と今後の改善予定

Sagaオーケストレーションへの発展

現在のコレオグラフィーパターンから、より制御の効いたオーケストレーションパターンへ発展させることで、サービス間のトランザクション管理とイベント順序の問題を解決します。

スキーマ定義の更新に係る運用コストの低減

現在はスキーマ定義のProtocol Bufferの定義をソースコード上で集中管理しています。
その影響でスキーマ定義の更新や追加時にデプロイ、ユーザーが用いるSDKの更新が必要です。
今後スキーマ定義をAPIで更新可能にすることで、運用コストの低減を目指しています。

同期モードへの発展

Sagaオーケストレーションへ発展と似ていますが、よりシンプルなリクエストレスポンス形式のAPIを同期的に提供することを予定しています。
この改善により、同期的なAPI呼び出しであっても経路管理の軽減、依存関係の簡略化、スキーマ管理、バリデーション、認証・認可の恩恵を受けられ、他のAPIの変更による影響を最小化することが可能です。

◆執筆:上田義明 @bootjp

アーキテクチャを構成するツール

会社情報

株式会社hacomono

株式会社hacomono

従業員規模 101名〜300名

エンジニア組織規模 51名〜100名

hacomono は、フィットネスクラブをはじめとするウェルネス産業向けのバーティカル SaaS です。店舗の入会・予約・決済・会員管理をデジタル化することで、働く人や運動する人の店舗体験をスマートに変えてきました。現在 7,000 店舗に導入、前年比 2 倍以上で増えています。