• Created five distinct Microservices in SpringBoot for managing Product,
Inventory, and Security of the system.
• Implemented Service discovery pattern for services to locate each other on a
network using Eureka server.
• Implemented a Circuit Breaker mechanism to improve system reliability.
• Used Kafka for asynchronous communication between microservices.
• Incorporated JWT for secure authentication and authorization.
• Employed both MongoDB and SQL databases. .
• Ensured observability and debugging ease by integrating Zipkin for
Distributed tracing.
• Implemented an API gateway as the single entry point to the system, handling
routing and security
PRODUCT SERVICE
• Handles the information about the product.
• Rest endpoints
GET "/api/product"
POST "/api/product"
• Database used -> MongoDB
ORDER SERVICE
• used to create order after synchronously calling inventory service to check the avalibilty of the product .
• Produces events to the kafka server which will be consumed by notification service to send notification.
• Rest endpoints
POST "/api/order"
• Database used -> Mysql
INVENTORY SERVICE
• used to handle the quantity of products .
• Rest endpoints
POST "/api/inventory"
• Database used -> Mysql
AUTH SERVICE
• used register user and create JWT token after authentication .
• Rest endpoints
POST "/auth/register"
GET "/auth/getToken"
• Database used -> Mysql
API GATEWAY
• used create a single entry point to the application and authenticate the token of each request.
• it will discover all service from the service registry and route request to them.
• Database used -> Mysql
