- API Gateway: Serves as the single entry point for all client requests & handles authentication and authorization using Keycloak.
- Customer Service: Handles operations related to customer management, such as registration, and profile updates.
- Product Service: Manages product information, including details like price, available quantity, and descriptions.
- Order Service: Manages orders placed by customers. It interacts with the Customer Service to validate customer details and the Product Service to confirm product availability. It asynchronously sends payment confirmation to the Notification Service via Kafka
- Payment Service: Handles payment processing for orders. Incorporated VNPAY for secure and diverse payment options, broadening the platform's financial capabilities. It asynchronously sends payment confirmation to the Notification Service via Kafka.
- Notification Service: Consume messages from Kafka (order and payment confirmations) and sends email to customers.
- Discovery Service (Eureka Server): It allows microservices to find and communicate with each other dynamically.
- Config Server: centralizes configuration management, enabling services to fetch their configurations at runtime from a version-controlled repository.