This code is a workshop to build a Domain-Driven Design / CQRS / Event Sourcing app in Java
- Java 8+
- Spring Boot
- Gradle
- Akka
- Apache Kafka
- Apache Kafka Streams
- GraphQL
This workshop code was develop with Visual Studio Code. We recommend you install Java Extension Pack.
For more details, just follow the tutorial Writing Java with Visual Studio Code.
You can run Visual Studio Code in portable mode. You can download the packaged version from the alternate downloads page
Alternatively, you can run coder on Docker.
If you don't want to install a code editor locally, you can also use Gitpod. Gitpod launches ready-to-code dev environments from any GitHub page. Simply go to the Gitpod App and start coding. You can also install the Gitpod Browser Extension.
For more details, just follow the Getting Started.
To get the code, just clone this repository
git clone https://github.com/agilepartner/cqrs-es-workshop-java.git
The code for this workshop is inspired by the following repositories
- Step 01 : Create an empty Spring Boot app
- Step 02 : Create your first aggregate
- Step 03 : Implementing our domain
- Step 04 : Wire everything up
- Step 05 : Persisting and publishing events
- Step 06 : Materialized view (a.k.a. read models a.k.a. projections)
- Step 07 : Define an API in GraphQL
- Step 08 : Create a simple front-end in Vue.js
- Step 09 : Become reactive with GraphQL subscriptions
- Step 10 : Concurrency with actors
- Step 11 : Introducing Kafka as messaging middleware
- Step 12 : React to events with a process manager
- Step 13 : Scaling out