Persistence is the soul of modern architecture. It is a way to have a state in the stateless application, mainly in distributed systems such as microservices and cloud age app style.
Software Engineers handle various persistence sources such as SQL, NoSQL, or even web services. With a considerable amount of options or flavors, how can they have a business away from these details or have a loose couple between the application and the persistence engine?
There is the Domain-Driven Design (DDD), which puts the code closer to the expert's vocabulary in brief words. And inside this design, there is Repository pattern to approach where it mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects.
The goal of this specification is an API abstraction between the persistence and the application DDD inspired.
We'll create this API inspired by several solutions in the market, such as Spring Data, Apache Delta Spike, Jakarta NoSQL, Quarkus, and so on.
Jakarta Data defines core APIs for the Jakarta EE platform allowing applications and other Jakarta EE components to explore the benefits of easy access to data technologies such as relational and non-relational databases, cloud-based data services, and so on.
Jakarta Data provides an API to allow easy data access technologies. Thus, a Java developer can split the persistence and the model with several features such as a Repository interface with the method by query, where the framework will implement it.
This project is intended to be included in the Jakarta EE platform, which is hosted at the Eclipse Foundation.
We plan to release the first version in Jakarta EE 11 together with Jakarta NoSQL.