In this technical report, we present Concursus, a framework for developing distributed applications using CQRS and event sourcing patterns within a modern, Java 8-centric, programming model. Following a high-level survey of the trends leading towards the adoption of these patterns, we show how Concursus simplifies the task of programming event sourcing applications by providing a concise, intuitive API to systems composed of event processing middleware.
This report includes a brief account of a distributed, microservice-based architecture which we successfully implemented using these techniques. We then discuss the scalability, reliability and fault-tolerance characteristics an event system should have, and how Concursus supports building systems with these characteristics. Finally, we indicate some future directions in event sourcing and stream processing technology and suggest how Concursus can be integrated with emerging technologies such as Apache Kafka.
Click here to download the technical report
Click here to view the Concursus blog series