翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
イベント駆動型アーキテクチャのドメイン整合性
公開日: 2022 年 3 月 8 日 (図の履歴)
このアーキテクチャは、トランザクションアウトボックスパターンをドメインのデータベーストランザクションに適用することで、イベント駆動型アーキテクチャの耐障害性を高める方法を示しています。すべてのローカル変更によって、他のドメインが投影できる対応するドメインイベントが生成され、境界コンテキスト間で結果整合性が確保されます。
イベント駆動型アーキテクチャのドメイン整合性
次の手順では、アーキテクチャについて説明します。
-
ドメイン間のイベントコレオグラフィをサポートするには、Amazon EventBridge を使用してカスタムイベントバスを設定します。
-
AWS Database Migration Service (AWS DMS) と Amazon Kinesis Data Streams で変更データキャプチャ (CDC) を設定して、モノリスのリレーショナルデータベースの変更を検出します。
-
データベースの変更後にイベントを挿入するアウトボックステーブルを作成し、エンティティとアウトボックステーブルの両方の書き込みをアトミック性、一貫性、分離性、耐久性 (ACID) を備えたトランザクションオペレーション内にラップします。
-
Kinesis CDC ストリームをリッスンする AWS Lambda関数を使用してアウトボックステーブルの挿入をキャプチャし、イベントバスでドメインイベントとして公開します。
-
コンテキスト制限付きマイクロサービスで、EventBridge でルールを設定して Amazon Simple Queue Service キューにプッシュし、Lambda 関数と Amazon SQS デッドレターキュー (DLQ) で処理することで、関連する外部イベントをキャプチャします。
-
受信外部ドメインイベントを使用して、ローカルロジックが読み取るために、Amazon DynamoDB テーブルで実装された、結果整合性のある他のドメインのデータベースの射影表現を構築します。
-
マイクロサービスで、エンティティテーブルとイベントアウトボックステーブルの両方で同じトランザクションメカニズムを繰り返します。
-
DynamoDB Streams を使用して、イベントアウトボックステーブルの挿入をキャプチャします。
-
Lambda 関数を使用してデータストリームを処理し、挿入をイベントバスのドメインイベントとして発行します。
詳細情報
詳細については、次のリソースを参照してください。
図の履歴
このリファレンスアーキテクチャ図の更新について通知を受け取るには、RSS フィードをサブスクライブします。
| 変更 | 説明 | 日付 |
|---|---|---|
初版発行 | リファレンスアーキテクチャ図が最初に公開されました。 | 2022 年 3 月 8 日 |
注記
RSS 更新をサブスクライブするには、使用しているブラウザで RSS プラグインが有効になっている必要があります。