How tokihab/automated-e-commerce-deployment-platform works
The source tree describes an e-commerce microservices application, although the README frames the repository as a deployment platform. The principal user journey is browsing products, maintaining a basket, authenticating, and submitting an order; ordering then coordinates buyer/payment validation and order-status events. Catalog, basket, identity, ordering, payment, and background processing are represented as distinct product stages, with event-bus infrastructure as an internal layer. Several runtime modules are present only in the tree, so their connections are omitted or shown as unverified; deployment-tool capabilities in the README are not represented because their implementation is not in the supplied tree.
Main entry points: RabbitMQEventBus.cs RabbitMQ event bus · Identity.API/Program.cs Identity server · GracePeriodManagerService.cs Grace-period worker · WebApp/Program.cs Web application
Components 26
Storefront
- Web application
src/microservices/eShop.WebApp/WebApp/Program.cs - Catalog client
src/microservices/eShop.WebApp/WebAppComponents/Services/CatalogService.cs - Basket client
src/microservices/eShop.WebApp/WebApp/Services/BasketService.cs
Identity
- Account UI
src/microservices/eShop.Identity.API/Identity.API/Quickstart/Account/AccountController.cs - Identity server
src/microservices/eShop.Identity.API/Identity.API/Program.cs - User profile
src/microservices/eShop.Identity.API/Identity.API/Models/ApplicationUser.cs - OIDC configuration
src/microservices/eShop.Identity.API/Identity.API/Configuration/Config.cs - Identity database
src/microservices/eShop.Identity.API/Identity.API/Data/ApplicationDbContext.cs
Commerce services
- Catalog API
src/microservices/eShop.Catalog.API/Catalog.API/Apis/CatalogApi.cs - Catalog AI
src/microservices/eShop.Catalog.API/Catalog.API/Services/CatalogAI.cs - Catalog database
src/microservices/eShop.Catalog.API/Catalog.API/Infrastructure/CatalogContext.cs - Basket gRPC
src/microservices/eShop.Basket.API/Basket.API/Grpc/BasketService.cs - Redis basket store
src/microservices/eShop.Basket.API/Basket.API/Repositories/RedisBasketRepository.cs - Orders API
src/microservices/eShop.Ordering.API/Ordering.API/Apis/OrdersApi.cs - Order commands
src/microservices/eShop.Ordering.API/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs - Buyer validation
src/microservices/eShop.Ordering.API/Ordering.API/Application/DomainEventHandlers/ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs - Buyer aggregate
src/microservices/eShop.Ordering.API/Ordering.Domain/AggregatesModel/BuyerAggregate/Buyer.cs - Ordering database
src/microservices/eShop.Ordering.API/Ordering.Infrastructure/OrderingContext.cs - Request idempotency
src/microservices/eShop.Ordering.API/Ordering.Infrastructure/Idempotency/RequestManager.cs - Payment processor
src/microservices/eShop.PaymentProcessor/PaymentProcessor/Program.cs - Grace-period worker
src/microservices/eShop.OrderProcessor/OrderProcessor/Services/GracePeriodManagerService.cs
Messaging
- RabbitMQ event bus
src/project_packages/eShop.EventBusRabbitMQ/EventBusRabbitMQ/RabbitMQEventBus.cs - Event handlers
src/project_packages/eShop.EventBus/EventBus/Abstractions/IIntegrationEventHandler.cs - Event log
src/project_packages/eShop.IntegrationEventLogEF/IntegrationEventLogEF/Services/IntegrationEventLogService.cs - Grace confirmation event
src/microservices/eShop.OrderProcessor/OrderProcessor/Events/GracePeriodConfirmedIntegrationEvent.cs
Other components
- Shopper
Connections 24
- Shopper → Web application: uses
- Web application → Catalog client: offers catalog
- Web application → Basket client: offers basket
- Catalog client → Catalog API: requests products
- Catalog API → Catalog database: reads catalog
- Catalog API → Catalog AI: AI capability
- Basket client → Basket gRPC: calls gRPC
- Basket gRPC → Redis basket store: reads and writes
- Shopper → Account UI: signs in
- Account UI → User profile: authenticates user
src/microservices/eShop.Identity.API/Identity.API/Quickstart/Account/AccountController.cs - Identity server → OIDC configuration: loads clients
src/microservices/eShop.Identity.API/Identity.API/Program.cs - Identity server → User profile: configures identity
src/microservices/eShop.Identity.API/Identity.API/Program.cs - Identity server → Identity database: stores identity
src/microservices/eShop.Identity.API/Identity.API/Program.cs - Shopper → Orders API: submits order
- Orders API → Order commands: dispatches command
- Buyer validation → Buyer aggregate: creates or verifies
src/microservices/eShop.Ordering.API/Ordering.API/Application/DomainEventHandlers/ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs - Buyer validation → RabbitMQ event bus: publishes status event
- Request idempotency → Ordering database: checks and saves
src/microservices/eShop.Ordering.API/Ordering.Infrastructure/Idempotency/RequestManager.cs - Grace-period worker → Ordering database: queries submitted orders
src/microservices/eShop.OrderProcessor/OrderProcessor/Services/GracePeriodManagerService.cs - Grace-period worker → Grace confirmation event: creates event
src/microservices/eShop.OrderProcessor/OrderProcessor/Services/GracePeriodManagerService.cs - Grace-period worker → RabbitMQ event bus: publishes event
src/microservices/eShop.OrderProcessor/OrderProcessor/Services/GracePeriodManagerService.cs - RabbitMQ event bus → Event handlers: dispatches events
src/project_packages/eShop.EventBusRabbitMQ/EventBusRabbitMQ/RabbitMQEventBus.cs - Event log → Ordering database: persists event records
- Payment processor → RabbitMQ event bus: event integration