1.2 MicroTxのコンポーネント

MicroTxには、トランザクション・コーディネータとMicroTxライブラリの2つのコンポーネントが含まれます。

コンテナ化されたマイクロサービスであるMicroTxは、アプリケーション・マイクロサービスとともに実行されます。次の図は、MicroTxのコンポーネントがアプリケーション・マイクロサービスとどのように相互作用するかを示しています。

MicroTxのコンポーネント

トランザクション・コーディネータ・サーバー

トランザクション・コーディネータは、参加側サービス間のトランザクションを管理します。

MicroTxは、トランザクション状態の永続性を確保するために、内部メモリー、Oracle Databaseおよびetcdをデータ・ストアとしてサポートします。

MicroTxライブラリ

アプリケーション・マイクロサービスは、ビジネス・ロジックを提供し、トランザクションの境界を定めます。これらのサービスは分散トランザクションに参加します。MicroTx APIを使用して、分散トランザクションを管理します。

アプリケーション開発者は、次の要因に応じてMicroTxクライアント・ライブラリの各部を使い分けます:
  • マイクロサービスの開発フレームワーク(HelidonやNode.jsなど)。
  • 選択したトランザクション・プロトコル(XA、LRA、TCCなど)。
  • アプリケーションがトランザクションを開始するか、トランザクションに参加するか。
    • トランザクション・イニシエータ・サービス - このようなアプリケーションは、トランザクションを開始して終了します。前の図で、マイクロサービス1はトランザクション・イニシエータ・サービスであり、トランザクションを開始するリクエストをMicroTxに送信します。
    • トランザクション参加側サービス - このようなアプリケーションは、トランザクションに参加するだけです。トランザクションを開始することはありません。前の図では、マイクロサービス2およびマイクロサービス3が、トランザクションに含まれるトランザクション参加側サービスです。