graph LR
Client_Application["Client Application"]
API_Gateway["API Gateway"]
Basket_Microservice["Basket Microservice"]
Catalog_Microservice["Catalog Microservice"]
Ordering_Microservice["Ordering Microservice"]
Identity_Microservice["Identity Microservice"]
Message_Broker["Message Broker"]
Unclassified["Unclassified"]
Client_Application -- "Sends Requests To" --> API_Gateway
API_Gateway -- "Routes Requests To" --> Basket_Microservice
API_Gateway -- "Routes Requests To" --> Catalog_Microservice
API_Gateway -- "Routes Requests To" --> Ordering_Microservice
API_Gateway -- "Routes Requests To" --> Identity_Microservice
Ordering_Microservice -- "Publishes Events To" --> Message_Broker
Basket_Microservice -- "Subscribes to Events From" --> Message_Broker
Catalog_Microservice -- "Publishes Events To" --> Message_Broker
click Client_Application href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/EShopMicroservices/Client_Application.md" "Details"
click API_Gateway href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/EShopMicroservices/API_Gateway.md" "Details"
click Basket_Microservice href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/EShopMicroservices/Basket_Microservice.md" "Details"
click Catalog_Microservice href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/EShopMicroservices/Catalog_Microservice.md" "Details"
click Ordering_Microservice href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/EShopMicroservices/Ordering_Microservice.md" "Details"
click Identity_Microservice href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/EShopMicroservices/Identity_Microservice.md" "Details"
click Message_Broker href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/EShopMicroservices/Message_Broker.md" "Details"
The microservice architecture of the eShop project is designed around several distinct components, each with a clear responsibility, facilitating a scalable and maintainable system. The Client Application serves as the primary user interface, interacting with the system through the API Gateway. The API Gateway acts as a unified entry point, routing requests to the appropriate microservices and handling cross-cutting concerns like authentication. Core business functionalities are encapsulated within dedicated microservices: the Basket Microservice manages shopping cart logic, the Catalog Microservice handles product information, the Ordering Microservice orchestrates the order lifecycle, and the Identity Microservice is responsible for user authentication and authorization. Asynchronous communication between these services is facilitated by a Message Broker, ensuring loose coupling and resilience. This setup allows for independent development, deployment, and scaling of each service, contributing to the overall agility of the system.
Client Application [Expand]
Represents the external user interface (e.g., web, mobile) interacting with the microservices.
Related Classes/Methods:
Client Application_Conceptual
API Gateway [Expand]
The single entry point for all client requests, responsible for routing, authentication, and potentially request aggregation.
Related Classes/Methods:
API Gateway_Conceptual
Basket Microservice [Expand]
Manages shopping cart operations, including adding, retrieving, and deleting items.
Related Classes/Methods:
Catalog Microservice [Expand]
Manages product information, including creation, retrieval, update, and deletion of products, organized by categories.
Related Classes/Methods:
Ordering Microservice [Expand]
Manages the order lifecycle, from creation to fulfillment, including order processing and status updates.
Related Classes/Methods:
Ordering Microservice_Conceptual
Identity Microservice [Expand]
Handles user authentication and authorization, managing user accounts and roles.
Related Classes/Methods:
Identity Microservice_Conceptual
Message Broker [Expand]
Facilitates asynchronous, event-driven communication between microservices, enabling loose coupling and scalability.
Related Classes/Methods:
Message Broker_Conceptual
Component for all unclassified files and utility functions (Utility functions/External Libraries/Dependencies)
Related Classes/Methods: None