NEWS

Scalar DB、マイクロサービス向けトランザクション管理機能の提供へ

株式会社Scalar(本社:東京都新宿区、代表取締役CEO兼COO:深津航、代表取締役CEO兼 CTO:山田浩之)は、汎用的なトランザクションマネージャであるScalar DBにおける新しいバージョン3.2を公開しました。Scalar DB 3.2では、マイクロサービス(*1)におけるデータベース間の整合性の維持を容易に実現する、マイクロサービス向けトランザクション管理機能を実装しました。Scalarは、当該機能の提供を通じて、マイクロサービスベースのアプリケーションにおけるアプリケーション開発者の負担を大幅に軽減することを目指します。

Scalarは、多様なデータベース上で稼働するトランザクション管理機構としてScalar DBを開発してまいりましたが、この度、当該データベースで稼働するマイクロサービスベースのアプリケーションにおいてもACIDトランザクションを実現可能とするマイクロサービス向けトランザクション管理機能をScalar DBに実装し、バージョン3.2としてリリース致しました。

データベースアプリケーションにおいてマイクロサービスを実現するには、データベース間の整合性を維持する必要があり、これまでSaga(*2)等の方法や、RDBに備えられているXA機能を用いて2PC(2相コミット)を行う等の方法がありましたが、実装が困難である、または高い可用性を実現することが必ずしも容易ではないという課題がありました。Scalar DB 3.2は、それらの課題を解決すべく、2PCベースのマイクロサービス向けのトランザクション管理機能を実装しました。

当該機能拡張により、アプリケーション開発者は、複雑な実装をすることなく、高い可用性を有するマイクロサービスベースのデータベースアプリケーションを開発することができます。また、当該機能は、Scalar DBがサポートするすべてのデータベース上で動作するため、RDB(MySQL、PostgreSQL、Oracle Database)間だけでなく、RDBやCassandra, Amazon DynamoDB, Azure CosmosDB等のNoSQLを跨いだトランザクションも実現することが可能です。

マイクロサービス向けトランザクション機能における詳細については、以下のサイトを参照ください。
https://github.com/scalar-labs/scalardb-samples/tree/main/microservice-transaction-sample
https://github.com/scalar-labs/scalardb/blob/master/docs/two-phase-commit-transactions.md

今後は、Scalar DBのさらなる利用を促進すべく、GraphQL等のインターフェースの開発や、高性能化にむけた改良を行う予定です。

(*1) マイクロサービス(マイクロサービスアーキテクチャ)
アプリケーションを複数の小さい(独立した)アプリケーションを組み合わせて構成する方式または設計方法
https://martinfowler.com/articles/microservices.html
https://microservices.io/index.html

(*2) Saga
トランザクションの整合性を結果的に保証するマイクロサービス向けトランザクション管理方式
https://microservices.io/patterns/data/saga.html

Scalar DBとは
Scalar DBは、汎用的なトランザクションマネージャおよびトランザクションインターフェースです。Apache License 2.0の元で公開されています。
https://github.com/scalar-labs/scalardb

次の記事