MicroStream 5.0 is now Open Source


Along with the release of MicroStream 5.0, the company also announced that its Java persistence framework is also open source.

MicroStream has been used productively in business critical projects for over six years. It is proven, stable and has high code quality. Now it’s time to open it. Open Source offers strong added value and great benefits to our community. The source code is now accessible to everyone.

First introduced in April 2019, MicroStream is a persistence engine for storing any type of Java object, such as lists and collections, as well as any document. It is similar to the built-in Java serialization but much more powerful. It can persist, load or update object graphs partially and on demand, unlike Java serialization which can only persist full object graphs. It is also very efficient in terms of size and performance.

MicroStream does not completely replace a database management system (DBMS), as it lacks user management, connection management, session management, etc., but in the vision of MicroStream developers, these features could be better implemented in dedicated server applications.

MicroStream views the DBMS as an inefficient way to preserve data because each database has its data structure and therefore the data must be converted and mapped with an additional layer such as an object relational mapper (ORM). These frameworks add complexity, increase latency, and introduce loss of performance.

MicroStream Data-Store technology eliminates the need for these conversions and everything can be stored directly in memory, making it very fast for queries and simplifying the architecture just using Java.

According to their website, performance is multiplied by 10 for a simple query with a peak of 1000x for a complex query with aggregation (sum) against JPA. Alternatively, they also offer connectors for databases like Postgres, MariaDB, SQLite, and simple file storage (even in the cloud) to hold data.

Other notable features are ACID transactions, multithreaded I / O, and lazy loading.

The query system uses the Java Streams API to find graphics of objects in memory. Consider the following method:

	
public static void booksByAuthor()
{
      final Map> booksByAuthor =
        	ReadMeCorp.data().books().stream()
        	.collect(groupingBy(book -> book.author()));


   	booksByAuthor.entrySet().forEach(e -> {
       	System.out.println(e.getKey().name());
       	e.getValue().forEach(book -> {
           	System.out.print('t');
           	System.out.println(book.title());
       	});
   	});
}
	

Keeping data in file storage is as easy as:

	
DataRoot root = microstreamDemo.root();
root.getCustomers().add(customer);
microstreamDemo.store(root.getCustomers());
	

Markus Kett, CEO and Co-Founder of MicroStream, spoke to InfoQ about MicroStream.

InfoQ: What was the inspiration for open source MicroStream?

Kett: For us as passionate Java developers, it is the greatest recognition and motivation when developers enjoy using us. MicroStream as an open source offers great added value and great benefits to our users. Understanding the code, the operating principle of MicroStream, debugging, finding and fixing bugs is now possible. It gives developers the ability to customize and extend MicroStream themselves. In addition, ongoing revisions of the code base and numerous test cycles by many developers will increase the stability of MicroStream. Open source creates trust and reduces the barrier to entry. Today we are proud to be part of the fantastic global open source community.

InfoQ: How has the Java community reacted to the fact that MicroStream is open source?

Kett: As many Java user groups around the world gave us the opportunity to introduce MicroStream to their members, many Java developers were very keen on MicroStream being open source. After opening MicroStream, we have received excellent feedback.

InfoQ: What’s on the horizon for MicroStream?

Kett: MicroStream is the predestined persistence layer for microservices which should have its own persistence, because compared to ORM frameworks, MicroStream is super lightweight and simple to implement, in fact micro persistence. This is why various microservices framework vendors are interested in integrating MicroStream. We are currently working with the Oracle Helidon team as well as the IBM Open Liberty team on the integration of MicroStream with Project Helidon and Open Liberty.

To provide users with the best possible convenience and support, we are working on a MicroStream Cloud which allows us to configure a MicroStream cluster running distributed applications by replicating object graphics between JVM processes, as well as storage services to high availability and fully managed services. .

The already available MicroStream for Android implementation is being rewritten. It enables the use of MicroStream on mobile devices and peripherals, as well as the very easy synchronization of these devices with Java applications and microservices running in the cloud.

MicroStream can be used as a single dependency with Maven. Developers interested in contributing to MicroStream can start by visiting their GitHub repository.


Comments are closed.