13.3 サンプルTCCアプリケーションについて

インストール・バンドルに含まれるサンプルTCCアプリケーションを使用して、TCCトランザクションでマイクロサービスとMicroTxが相互に作用する方法について説明します。

サンプル・アプリケーションは、TCCトランザクション・プロトコルとMicroTxを使用してトランザクションを調整します。MicroTxライブラリはすでにサンプル・アプリケーション・コードと統合されています。

サンプルTCCアプリケーションによって実装されるシナリオでは、旅行代理店マイクロサービスが旅行を予約し、航空券予約サービスが航空券を予約し、ホテル予約マイクロサービスがホテルを予約します。旅行代理店サービスは、航空券予約サービスとホテル予約サービスの両方にアクセスします。顧客が航空券とホテルを予約すると、顧客が支払を完了して予約を確定するまで、その予約が押さえられています。何らかのエラーが発生すると、予約されていたリソースが取り消され、リソースはインベントリに戻されます。

次の図に示すサンプルTCCアプリケーションには、いくつかのマイクロサービスが含まれています。これはMicroTxを使用してTCCトランザクションを管理する方法を示しています。

TCCサンプル・アプリケーション

サンプルTCCアプリケーションは、次のマイクロサービスで構成されます:

  • MicroTx (TCCコーディネータ)
  • 旅行代理店サービスは、トランザクション・イニシエータ・サービスです。ここで、TCCトランザクションが開始します。ホテル客室と航空券予約するAPIと取り消すAPIを提供します。旅行を予約する際に、このサービスが、航空券予約サービスとホテル予約サービスをコールします。また、トランザクションを完了するために、確定コールまたは取消しコールをトランザクション参加側サービスに送信します。
  • ホテル予約サービスはトランザクションに参加するため、トランザクション参加側サービスとも呼ばれます。ホテル客室予約を確定するAPIと取り消すAPIを提供します。
  • 航空券予約サービスはトランザクションに参加するため、トランザクション参加側サービスとも呼ばれます。航空券予約を確定するAPIと取り消すAPIを提供します。

TCCサンプル・アプリケーションのコードは、microtx-samples GitHubリポジトリtccのフォルダにあります。サンプルTCCアプリケーションのコードは、Node.jsおよびJavaで提供されています。サンプル・アプリケーションを実行する際には、3つのサンプル・マイクロサービスすべてをNode.jsまたはJavaで構築します。Javaの旅行代理店サービスとNode.jsのホテル予約サービスを一緒に実行しようとしないでください。