本サンプルアプリケーションは、マルチリージョン環境で稼働するマイクロサービスとして実装されたアプリケーションです。 以下の勘定系機能を提供します。
- 残高参照
- 口座預入れ
- 口座引落し
アプリケーションは下記の 4 つのマイクロサービス(ECS コンテナ)から構成され、Saga パターンによる補償トランザクションの仕組みを実装することで、分散環境でのトランザクションの整合性を保持するように実装されています。
サービス名 | 機能 |
---|---|
transaction | トランザクション全体を制御するマイクロサービス |
balance | 口座データに対して引落し/預入れ処理を行うマイクロサービス |
count | 口座からの引落し処理の回数を管理するマイクロサービス |
worker | 仕掛かり中でペンディング状態となっているトランザクションを処理する常駐サービス |
基本的には同一のアプリケーションが東京リージョンと大阪リージョンにデプロイされますが、競合状態になることを割けるため、トランザクションワーカーは東京リージョンのみで稼働します。
[アプリケーションのアーキテクチャー]
[預入れ処理のシーケンス図]
[引落し処理のシーケンス図]
デプロイ手順については以下の文書を参照して下さい。