View a markdown version of this page

イベント駆動型アーキテクチャのドメイン整合性 - イベント駆動型アーキテクチャのドメイン整合性

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

イベント駆動型アーキテクチャのドメイン整合性

公開日: 2022 年 3 月 8 日 (図の履歴)

このアーキテクチャは、トランザクションアウトボックスパターンをドメインのデータベーストランザクションに適用することで、イベント駆動型アーキテクチャの耐障害性を高める方法を示しています。すべてのローカル変更によって、他のドメインが投影できる対応するドメインイベントが生成され、境界コンテキスト間で結果整合性が確保されます。

イベント駆動型アーキテクチャのドメイン整合性

Amazon EventBridge、、Amazon DynamoDB、Amazon Kinesis AWS Lambda、Amazon Simple Queue Service を使用したイベント駆動型アーキテクチャのドメイン整合性を示すアーキテクチャ図。

次の手順では、アーキテクチャについて説明します。

  1. ドメイン間のイベントコレオグラフィをサポートするには、Amazon EventBridge を使用してカスタムイベントバスを設定します。

  2. AWS Database Migration Service (AWS DMS) と Amazon Kinesis Data Streams で変更データキャプチャ (CDC) を設定して、モノリスのリレーショナルデータベースの変更を検出します。

  3. データベースの変更後にイベントを挿入するアウトボックステーブルを作成し、エンティティとアウトボックステーブルの両方の書き込みをアトミック性、一貫性、分離性、耐久性 (ACID) を備えたトランザクションオペレーション内にラップします。

  4. Kinesis CDC ストリームをリッスンする AWS Lambda関数を使用してアウトボックステーブルの挿入をキャプチャし、イベントバスでドメインイベントとして公開します。

  5. コンテキスト制限付きマイクロサービスで、EventBridge でルールを設定して Amazon Simple Queue Service キューにプッシュし、Lambda 関数と Amazon SQS デッドレターキュー (DLQ) で処理することで、関連する外部イベントをキャプチャします。

  6. 受信外部ドメインイベントを使用して、ローカルロジックが読み取るために、Amazon DynamoDB テーブルで実装された、結果整合性のある他のドメインのデータベースの射影表現を構築します。

  7. マイクロサービスで、エンティティテーブルとイベントアウトボックステーブルの両方で同じトランザクションメカニズムを繰り返します。

  8. DynamoDB Streams を使用して、イベントアウトボックステーブルの挿入をキャプチャします。

  9. Lambda 関数を使用してデータストリームを処理し、挿入をイベントバスのドメインイベントとして発行します。

詳細情報

詳細については、次のリソースを参照してください。

図の履歴

このリファレンスアーキテクチャ図の更新について通知を受け取るには、RSS フィードをサブスクライブします。

変更説明日付

初版発行

リファレンスアーキテクチャ図が最初に公開されました。

2022 年 3 月 8 日

注記

RSS 更新をサブスクライブするには、使用しているブラウザで RSS プラグインが有効になっている必要があります。