Eclipse Store provides a Java micro persistence layer built for cloud-native microservices and serverless functions written in Java. Eclipse Store is based on the system prevalence architectural pattern. It enables seamlessly storing any Java objects of any size and complexity transaction-save into cloud blob stores such as AWS S3 or any other binary data storage. Therefore, Eclipse Store provides connectors to various relational and NoSQL database systems. ACID transactions are journaled and changes in the system state are regularly saved to disk (deltas only). All transactions are stored in a highly optimized serialization byte format appended to the storage. To reduce startup time and run also with a small RAM capacity, Eclipse Store provides lazy loading. At the system start, only object IDs must be loaded into memory. Related object references (subgraphs) are only loaded and restored in memory on demand by calling common get methods. The Java Streams API is used for searching and filtering data in memory. Eclipse Store provides object versioning, dynamic class loading, and serialization control for handling class changes, ensuring that applications can continue to function even if classes are modified. Eclipse Store runs also on Android mobile, edge, and embedded devices.
The content of this open source project is received and distributed under the license(s) listed above. Some source code and binaries may be distributed under different terms. Specific license information is provided in file headers and in NOTICE files distributed with the project's binaries.