A prototype of an event-driven order management system built with Spring Boot and Kafka.
This system is built using a microservice architecture. Each service operates independently and communicates asynchronously using Kafka events.
- Role: Routes client requests to the appropriate services and manages authentication and authorization.
- Status: Under development.
- Role: Handles order creation, retrieval, and cancellation.
- Description: Upon order creation, it publishes events to Kafka for the Inventory Service and Payment Service.
- Role: Manages inventory operations.
- Description: Checks stock availability and updates stock levels based on order creation events received from the Order Service.
- Role: Processes payments.
- Description: Listens for payment request events from the Order Service, processes payments, and sends the result back to the Order Service.
- Status: Under development.
- Role: Handles shipping operations.
- Description: Receives shipping request events from the Order Service to manage deliveries.
- Status: Under development.
The system implements SAGA Pattern using a Choreography-based approach. Each service listens to Kafka events and completes its part of the transaction. In case of a failure, compensating actions are triggered to maintain system consistency.
- Planning to add an API Gateway for JWT.
- and integrate a basic frontend for login and order management.
- and payment and Shipping services to be implemented soon.