2 フェーズコミットトランザクションを実行する方法
注記
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
ScalarDB GraphQL は、2 フェーズコミットトランザクションと呼ばれるトランザクションをサポートしています。
2 フェーズコミットトランザクションを使用すると、複数のプロセス/アプリケーション (マイクロサービスなど) にまたがるトランザクションを実行できます。
トランザクションを開始するアプリケーションを「コーディネーター」と名付け、トランザクションに参加するアプリケーションを「参加者」と名付けます。
すべての 2 フェーズコミット操作では、ミューテーションまたはクエリ操作に @twoPhaseCommit
ディレクティブをアノテーションする必 要があります。以下は、このような操作の説明です。
トランザクションを開始する
トランザクションを開始するには、パラメータを設定せずに @twoPhaseCommit
ディレクティブを追加します。
query some_query @twoPhaseCommit {
# some query
}
開始されたトランザクションのトランザクション ID は、結果の一部である拡張オブジェクトで返されます。
{
"data": {
...
},
"extensions": {
"transaction": {
"id": "the_transaction_id"
}
}
}