1.1 MicroTxの仕組み

MicroTxを使用するには、MicroTxをインストールしてから、MicroTxクライアント・ライブラリをアプリケーション・コードと統合してトランザクションを管理します。

MicroTxクライアント・ライブラリによって提供されるインターセプタについて

MicroTxクライアント・ライブラリによって提供されるインターセプタは、受信と送信両方のRESTコールと、それらのリクエストおよびレスポンスをインターセプトします。これらのインターセプタは、ヘッダーを使用してトランザクション・コンテキストを伝播します。これによって、参加側マイクロサービスがトランザクションに自動的に登録されます。また、インターセプタによって、適切なトランザクション・ヘッダーがすべての送信RESTコールで確実に伝播されます。

次の図に、リクエストとレスポンスの一般的なフローと、MicroTxライブラリによって提供されるインターセプタの役割を示しています。

MicroTxライブラリによって提供されるインターセプタの役割(トランザクション・コンテキストの伝播)

MicroTxクライアント・ライブラリを使用するマイクロサービスが、分散トランザクションを開始している場合、または分散トランザクションに現在参加している場合、ライブラリのインターセプタがアウトバウンドRESTリクエストにトランザクション・ヘッダーを追加します。マイクロサービスがリクエストを受信すると、受信側サービスのインターセプタがトランザクション・ヘッダーを識別し、自動的に参加側として分散トランザクションに登録されます。

MicroTxを使用する場合の一般的なトランザクション・ワークフローを次に示します。次の図は、MicroTxがアプリケーション・マイクロサービスと通信してトランザクションを処理する方法を示しています。

MicroTxを使用する場合の一般的なトランザクション・ワークフロー。
  1. アプリケーション開発者は、MicroTxライブラリに含まれる関数をアプリケーション・コードで使用します。
  2. マイクロサービスまたはクライアントがトランザクションを開始すると、MicroTxライブラリ内の関数を呼び出して分散トランザクションを開始します。
  3. MicroTxライブラリには、参加側サービスがトランザクションに自動的に登録できるようにするヘッダーが含まれています。
  4. イニシエータ・サービスの元のリクエストに関連付けられたすべてのタスクが完了すると、イニシエータ・サービスはトランザクション・コーディネータに要求して、すべての変更をコミットまたはロールバックします。
  5. トランザクション・コーディネータは、分散トランザクションの一部として参加側サービスが行った変更をコミットまたはロールバックするように、各参加側サービスにコールを送信します。