Microservices accelerate development and enable businesses to innovate faster and stay ahead of the competition. But one major challenge with the microservices architecture is the management of distributed data. Each microservice has its own private database. It is difficult to implement business transactions that maintain data consistency across multiple services as well as queries that retrieve data from multiple services.
Eventuate™ is platform that solves the distributed data management problems inherent in a microservice architecture enabling you focus on your business logic.
Eventuate™ consists of:
Eventuate Tram - a framework for services that use traditional (e.g. JPA/JDBC and Entity Framework) persistence. You can easily add Eventuate Tram to your Spring Boot, Micronaut, Quarkus, and .NET microservices without having to rewrite your business logic.
Eventuate Local - an event sourcing framework. Event sourcing is an event-centric business logic and persistence programming model that has some advantages including automatic publishing of events when data changes, reliable auditing of all updates, and built-in support for temporal queries Eventuate Local consists of an event store and client libraries for various languages and frameworks including Java, Scala, the Spring, Micronaut, and Quarkus frameworks.
Implement commands that update data in multiple microservices by using Sagas, which are sequences of local transactions coordinated using messages
Implement queries that retrieve data from multiple services by using CQRS views, which are easily queryable replicas maintained using events
Reliably send and receive messages and events as part of a database transaction by using either the Transactional Outbox or Event Sourcing patterns
Rather than reinvent the wheel, Eventuate builds on familiar, proven, and robust technologies, such as MySQL and Apache Kafka.
Eventuate is available for a variety of languages and frameworks - Java Spring Boot, Micronaut and Quarkus, and .NET core - with more planned.
Eventuate is designed for microservice and so doesn't have the unnecessary baggage and bloat of older frameworks that have been repurposed to support microservices
To find out more about how Eventuate simplifies the development of microservices: