書籍メモ「Persistence Best Practices for Java Applications」Chapter 9

https://learning.oreilly.com/library/view/persistence-best-practices/9781837631278/

Part 3: Architectural Perspective over Persistence

Chapter 9 Persistence Practices – Exploring Polyglot Persistence

・The trade-offs of polyglot persistence
・Understanding Domain-Driven Design (DDD) and Jakarta
・Jakarta Data

ポリグロット永続性
ポリグロット・パーシステンス(Polyglot persistence)とは、 アプリケーション内のさまざまなニーズに対応するために、複数のタイプのデータベースを併用するデータストレージへのアプローチである。
ポリグロットという用語は、様々な言語やツールを使用することを意味し、この文脈では、複数のタイプのデータベースを使用することを意味する。
ポリグロット永続化によって、開発者は、スケーラビリティ、データ構造、およびクエリ要件などの要因に基づいて、各ユースケースに最適なデータベースを選択できるようになります。
データベースが増えるということは、特定の永続化ソリューションを扱うためのコストやインフラ知識も増えるということです。

What is Polyglot Persistence?(ポリグロット・パーシステンスとは?)
https://www.jamesserra.com/archive/2015/07/what-is-polyglot-persistence/

DDDは、問題ドメインが開発の主要な焦点であるべきであり、ソフトウェアは、基礎となるドメインの概念とプロセスを反映するように設計されるべきであるという考えに基づいている。
DDDでは、戦略設計と戦術設計を区別する。
DDD は、 プレゼンテーション層、アプリケーション層、ドメイン層、および永続層を含む、ソフトウェアアプリケーションのさまざまな層に、大きく影響を与えることができます。
DDDは、明確で一貫性のあるドメインモデルと一連のデザインパターンとテクニックを提供することで、変化するビジネス要件に適応できる、より保守性と拡張性の高いソフトウェアを作成するのに役立ちます。

リポジトリパターンは、ドメインレイヤーと永続レイヤーの間に抽象化レイヤーを提供するデザインパターンである。
リポジトリパターンは、ドメインオブジェクトにアクセスして永続化するためのロジックをカプセル化します。
リポジトリパターンは通常、ドメインレイヤーでインターフェースとして実装され、永続レイヤーで具体的な実装が行われる。
リポジトリパターンの主な利点の1つは、ドメインレイヤーを永続化レイヤーから切り離し、アプリケーションをよりモジュール化し、保守しやすくすることです。
リポジトリと DAO の主な違いは、リポジトリはドメインオブジェクトにアクセスして永続化するためのロジックをカプセル化するように設計されていることです。
対照的に、DAOはデータへのアクセスと永続化のための一般的なロジックをカプセル化するように設計されています。

JakartaData
https://jakarta.ee/specifications/data/
Jakarta Dataは、簡単なデータアクセス技術を可能にするAPIを提供する。
したがって、Java開発者は、フレームワークが実装するクエリによるメソッドを持つリポジトリ・インターフェースなど、いくつかの機能で永続性とモデルを分割することができます。

memoO'REILLY Learning

Posted by shi-n