The Eventuate™ Platform for developing transactional microservices. It provides a simple yet powerful event-driven programming model that solves the distributed data management problems inherent in a microservice architecture. Eventuate lets you easily write microservices that use Event Sourcing and Command Query Responsibility Segregation (CQRS).
Eventuate consists of a scalable, distributed event store server and client libraries for various languages and frameworks including Java, Scala, and the Spring framework. There are several example applications on github.com that illustrate how to use the Eventuate Platform.
The Todo List application is the hello world application for the Eventuate™ Platform. It illustrates how you can use the platform to write an application that uses Event Sourcing and Command Query Responsibility Segregation (CQRS). The Todo List application lets users maintain a todo list.
Food to Go is a fictitious, on-demand logistics company from Chris Richardson’s book POJOs in Action. It delivers takeout orders from restaurants to customers. A key part of the application is the restaurant management service, which maintains a database of restaurants that can be queried for availability to deliver an order to a customer at a particular time. This version of the restaurant management service has an architecture based on microservices, event sourcing and Command Query Responsibility Segregation (CQRS). It is written in Java and uses the Eventuate Platform, Spring Boot, and Redis.
The Money Transfer application shows how to transfer money between two bank accounts using an event-driven, eventually consistent transaction. There are Java and Scala versions of the code. The application has a microservices architecture and is written using Spring Boot.
The Kanban Board application is an example of a real-time, multi-user collaborative application. The Kanban Board application enables users to collaboratively create and edit Kanban boards and tasks. Changes made by one user to a board or a task are immediately visible to other users viewing the same board or task. It has a microservices architecture and is written using Java and Spring Boot and uses MongoDB for materialized views. The application uses STOMP-over-WebSockets to push events from the event store to an AngularJS front-end.