Database-per-service に基づくマイクロサービスアプリケーションの開発は、複数・異種のデータベースの一貫性を保証する必要があるため非常に困難です。コミュニティではSaga等のアプローチが広く推奨されていますが、当該アプローチはアプリケーションがトランザクションの独立性を保証する必要があり、つまり、アプリケーション開発者が複雑なリカバリーコードを書かないといけないという欠点があります。別の方法としては二層コミット(2PC)がありますが、二層コミットはマイクロサービスにおいてはアンチパターンとして考えられており、スケーラビリティや可用性に課題があると考えられています。
本セッションでは、マイクロサービスの利点を復習し、既存のトランザクション管理方法の利点・欠点を再考します。また、マイクロサービスの利点を損なうことなく、正確かつ容易トランザクション管理を行うアプローチを紹介します。