Skip to content

Demo of CQRS and Event Sourcing with Spring Boot, h2 database, microservices and kafka broker

Notifications You must be signed in to change notification settings

drubioa/demo-cqrs-kafka

Repository files navigation

Demo for CQRS with Spring Boot, Apache Kafka and Mongo

Java CI with Maven License: MIT

The main propose of this project is test CQRS with Event Sourcing. This project consists in two spring boot microservices, one to command and other to query. Additionally we deploy and run docker containers for two Mongo databases, an Apache kafka message broker and Apache Zookeeper.

In the next diagram we can show how this project was designed:

diagram

Starting 🚀

Requirements 📋

To install and run this project you may be installes next requirements:

  • jdk8
  • maven
  • docker and docker-compose

Installation 🔧

To generate jar files run the following command in root path:

mvn clean package

Run containers of Apache Kafka, Zoookeper and Mongo.

docker-compose up -d

Wait a minute, when you see all containers running yo can launch the Spring Boot microservices:

Microservice for command

Run the following command:

java -jar demo-command/target/demo-command-0.0.1-SNAPSHOT.jar.original

Microservice for query

In other terminal run the following command:

java -jar demo-query/target/demo-query-0.0.1-SNAPSHOT.jar.original

Running project ⚙️

Once all microservice started you can test this service using the command endpoint and service endpoint. I show you one example for POST and GET http rest requests with curl command:

curl --location --request POST 'localhost:8081/phone' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "iphone11",
    "model": "11",
    "color": "red",
    "price": 800.99
}'
curl --location --request GET 'localhost:8082/phone/iphone08'

About

Demo of CQRS and Event Sourcing with Spring Boot, h2 database, microservices and kafka broker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published