boot-camp-event-driven
Event Driven Architecture with Spring Boot
Architecture Design
- Frontend only communicates with Backend (BFF) - REST API
- Backend can then communicates with all other lower level Services using ActiveMQ - Pub/Sub
- All the lower level Services are - Inventory, Order (i.e Assignment) & Amazon
- The communication media between all the lower level Services is ActiveMQ - Pub/Sub
High Level Design
REST API
Frontend -> Backend
ActiveMQ - Pub/Sub
Backend -> <- Inventory -> <- Order -> <- Amazon
Tech Stack
- Frontend -> React
- Backend -> REST API, Spring Boot, ActiveMQ
- Inventory -> Spring Boot, Mongodb, ActiveMQ
- Order -> Spring Boot, Postgres, ActiveMQ
- Amazon -> Spring Boot, Mongodb, ActiveMQ
Install & Run
You can build all the child modules using parent pom.xml and then run all the application using the following commands,
mvn package
docker-compose up --build
Browse the Applications
Client Application
Swagger for Backend
http://localhost:8085/v1/swagger-ui/index.html?configUrl=/v1/api-docs/swagger-config#/
ActiveMQ - Pub/Sub
username = admin
password = admin