This repository contains a microservices project that implements a set of services for managing products, orders, inventory, and notifications. The project is built using Java, Spring Boot, Maven, MongoDB, MySQL, Apache Kafka, Resilience4J, and Docker. It demonstrates both synchronous and asynchronous communication between services.
- Description: This service acts as a product catalog and allows the creation and viewing of products.
- Technology: Java, Spring Boot, MongoDB
- Service Endpoint:
/api/product
- Description: This service is responsible for creating orders for products.
- Technology: Java, Spring Boot, MySQL
- Service Endpoint:
/api/order
- Description: The Inventory Service checks whether a product is in stock or not.
- Technology: Java, Spring Boot, MySQL
- Service Endpoint:
/api/inventory
- Description: The Notification Service sends notifications after an order is placed.
- Technology: Java, Spring Boot, Apache Kafka
- Service Endpoint:
/api/notification
- Synchronous communication is used between the Product Service, Order Service, and Inventory Service through RESTful APIs.
- Asynchronous communication is implemented using Apache Kafka for communication between the Order Service and Notification Service.
- Java
- Spring Boot
- Maven
- MongoDB (Product Service)
- MySQL (Order Service and Inventory Service)
- Eureka (A service registry and discovery server used for locating and connecting to microservices)
- Apache Kafka (Order Service and Notification Service)
- Resilience4J (for fault tolerance)
- Docker (for containerization)