9.3. Saga サービスの設定

Saga EIP では、インターフェイス org.apache.camel.saga.CamelSagaService を実装したサービスを Camel コンテキストに追加する必要があります。Camel は、現在以下の Saga サービスをサポートしています。

  • InMemorySagaService: これは Saga EIP の 基本 実装で、高度な機能をサポートしません (リモートコンテキストの伝搬に非対応、アプリケーション障害時の一貫性は非保証)。

9.3.1. インメモリー Saga サービスの使用

インメモリー Saga サービスは本番環境では推奨されません。Saga ステータスの永続性をサポートせず (インメモリーにのみ保持される)、アプリケーション障害が発生した場合 (JVM クラッシュなど) に Saga EIP の一貫性を保証できないためです。また、インメモリー Saga サービスを使用する場合は、トランスポートレベルのヘッダーを使用して Saga コンテキストをリモートサービスに伝播することができません (他の実装では可能です)。インメモリーの Saga サービスを使用するには、以下のコードを追加して Camel コンテキストをカスタマイズします。このサービスは camel-core モジュールに属しています。

context.addService(new org.apache.camel.impl.saga.InMemorySagaService());