トランザクションで分解する - AWS 規範ガイダンス

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

トランザクションで分解する

分散システムでは、アプリケーションは通常、1 つのビジネストランザクションを完了するために複数のマイクロサービスを呼び出す必要があります。レイテンシーの問題や 2 段階コミットの問題を避けるため、マイクロサービスをトランザクションに基づいてグループ化できます。このパターンは、応答時間が重要で、パッケージ化後に異なるモジュールがモノリスを作成しない場合に適しています。以下の表では、このパターンを使用する利点と欠点について説明します。

利点 欠点
  • 応答時間が短縮されます。

  • データ整合性について心配する必要はありません。

  • 可用性が向上しました。

  • 複数のモジュールをまとめてパッケージ化すると、モノリスが作成されます。

  • 個別のマイクロサービスではなく、複数の機能が 1 つのマイクロサービスに実装されるため、コストと複雑さが増します。

  • ビジネスドメインの数とそれらの間の依存関係が多いと、トランザクション指向のマイクロサービスは成長する可能性があります。

  • 同じビジネスドメインに一貫性のないバージョンが同時にデプロイされる可能性があります。

以下の図では、保険業界のモノリスをトランザクションに基づいて複数のマイクロサービスに分解しています。

モノリスをトランザクション別に分解する

保険システムでは、通常、クレームリクエストは送信後に顧客にタグ付けされます。つまり、顧客マイクロサービスがなければ、クレームサービスは存在し得ないということです。営業と顧客は 1 つのマイクロサービスパッケージにまとめられており、ビジネストランザクションでは両者との調整が必要です。