この設計機能は、独立したサービスがメッセージキューまたはパブリッシュ・サブスクライブモデルを通じて通信する、堅牢なイベント駆動型アーキテクチャの構築に重点を置いています。アーキテクトはイベントのスキーマを定義し、プロデューサーとコンシューマー間の契約を確立し、リトライメカニズムやデッドレターキューを通じてフォールトトレランスを確保します。このアプローチは、リアルタイムデータ処理を可能にし、マイクロサービス間の疎結合を実現し、高いスループットと低レイテンシが求められる現代のクラウドネイティブアプリケーションにとって不可欠です。
コアとなるイベントモデルを定義するため、非同期処理が必要なビジネスプロセスを特定し、適切なメッセージングプロトコル(例:Kafka、RabbitMQ)を選択してください。
イベントスキーマを、ドメイン固有の言語またはJSON標準を用いて確立し、エコシステム内のすべてのサービスで一貫したデータ構造を確保します。
一時的な障害発生時におけるシステム安定性を維持するため、サーキットブレーカー、指数関数的なバックオフ付きリトライ、およびデッドレターキューを含むエラーハンドリング戦略を実装します。
現在のモノリシックなワークフローを分析し、イベントストリームによる非同期処理に適したボトルネックを特定する。
規模、耐久性要件、および既存の技術スタックの制約に基づいて、適切なメッセージングインフラストラクチャを選択してください。
ビジネスの重要度レベルに合致する、少なくとも1回または厳密に1回の配信保証を実現する、プロデューサー・コンシューマーパターンを設計します。
イベントの消費速度、バックプレッシャーの状況、およびシステムの状態をリアルタイムで監視するためのダッシュボードを実装します。
ビジネス部門と連携し、大量のトランザクション処理を行うプロセスを特定し、それらを独立したイベントストリームとして分離(デカップリング)するのに適したものを洗い出す。
各イベントタイプについて、その構造、検証ルール、および意味を定義する、詳細なAPI契約とデータスキーマの草案を作成します。
メッセージの処理速度、遅延許容値、および信頼性に関する具体的な目標値を設定し、インフラストラクチャの規模決定と最適化の指針とします。