We are super excited about the latest Eventuate sample application. It is a real-time, collaborative Kanban board. The application uses Websockets to deliver events published by the Eventuate event store to each user’s browser. This ensures that every user viewing a Kanban board sees the same consistent view . It is a great example of how event sourcing is an excellent choice for real-time collaborative applications.
The following diagram shows the architecture.
The application has an AngularJS front-end. Each of the microservices as well as the API Gateway are written in Java and use Spring Boot. The system-of-record is the Eventuate event store. MongoDB is used as a CQRS view of boards and tasks. The microservices , the API gateway and MongoDB are deployed using Docker.
Event sourcing is a good choice for this kind of collaborative application. That is because whenever the state of the application – i.e. a board or a task – changes an event is published. Those events can then update the information displayed to the users. In this application the events are transformed into WebSocket messages and delivered each user’s browser.
Learn more about Eventuate
To find out more about Eventuate:
- Read the overview
- Take a look at the example applications including the Kanban application
- Watch a presentation on building event-driven microservices
- Signup and start using the platform for free