How nagavjm/ecommercesaga works
This is a .NET microservices e-commerce platform with an Angular storefront. Customers browse products, manage a cart, authenticate, and submit orders; order creation returns asynchronously while the Saga Orchestrator coordinates inventory, payment, and shipping, with status available through tracking. Admin screens cover products, inventory, and saga monitoring. The README documents service capabilities and messaging patterns, but sampled sources do not show most service-to-service dispatch details, so those links are omitted rather than inferred.
Main entry points: Program.cs Ocelot Gateway · OrderSagaCoordinator.cs Saga Orchestrator · app.component.ts Angular Storefront · OutboxProcessorBackgroundService.cs Outbox & Bus
Components 20
Storefront
- Angular Storefront
src/Frontend/ecommerce-angular/src/app/app.component.ts - Catalog Browsing
src/Frontend/ecommerce-angular/src/app/features/catalog - Cart & Checkout
src/Frontend/ecommerce-angular/src/app/features/checkout/checkout.component.ts - Sign In
src/Frontend/ecommerce-angular/src/app/core/services/auth.service.ts - Orders & Tracking
src/Frontend/ecommerce-angular/src/app/features/orders - Admin Console
src/Frontend/ecommerce-angular/src/app/features/admin
API Edge
- Ocelot Gateway
src/ApiGateway/OcelotGateway/Program.cs
Commerce Services
- Identity Service
src/Services/Identity/Identity.API/Controllers/AuthController.cs - Product Service
src/Services/Product/Product.API/Controllers/ProductsController.cs - Cart Service
src/Services/Cart/Cart.API/Controllers/CartController.cs - Order Service
src/Services/Order/Order.API/Controllers/OrdersController.cs
Fulfillment Saga
- Inventory Service
src/Services/Inventory/Inventory.API/Controllers/InventoryController.cs - Payment Service
src/Services/Payment/Payment.API/Controllers/PaymentsController.cs - Shipping Service
src/Services/Shipping/Shipping.API/Controllers/ShippingController.cs - Saga Orchestrator
src/Services/SagaOrchestrator/SagaOrchestrator.Application/Services/OrderSagaCoordinator.cs - Notifications
src/Services/Notification/Notification.API/Consumers/NotificationMessageConsumerWorker.cs
Shared Platform
- Event Contracts
src/BuildingBlocks/BuildingBlocks.Contracts/Events - Outbox & Bus
src/BuildingBlocks/BuildingBlocks.Messaging/Outbox/OutboxProcessorBackgroundService.cs - Observability
src/BuildingBlocks/BuildingBlocks.Observability
Other components
- Shopper
Connections 27
- Shopper → Angular Storefront: uses
src/Frontend/ecommerce-angular/src/app/app.component.ts - Angular Storefront → Catalog Browsing: routes to
- Angular Storefront → Cart & Checkout: routes to
- Angular Storefront → Orders & Tracking: routes to
- Angular Storefront → Admin Console: routes to
- Sign In → Ocelot Gateway: HTTP requests
- Angular Storefront → Ocelot Gateway: API access
- Ocelot Gateway → Identity Service: routes requests
README.md - Ocelot Gateway → Product Service: routes requests
README.md - Ocelot Gateway → Cart Service: routes requests
README.md - Ocelot Gateway → Order Service: routes requests
README.md - Ocelot Gateway → Inventory Service: routes requests
README.md - Ocelot Gateway → Payment Service: routes requests
README.md - Ocelot Gateway → Shipping Service: routes requests
README.md - Ocelot Gateway → Saga Orchestrator: routes requests
README.md - Ocelot Gateway → Notifications: routes requests
README.md - Order Service → Saga Orchestrator: starts async flow
README.md - Saga Orchestrator → Inventory Service: coordinates
README.md - Saga Orchestrator → Payment Service: coordinates
README.md - Saga Orchestrator → Shipping Service: coordinates
README.md - Saga Orchestrator → Orders & Tracking: status tracking
- Order Service → Outbox & Bus: outbox events
README.md - Payment Service → Outbox & Bus: outbox events
README.md - Shipping Service → Outbox & Bus: outbox events
README.md - Outbox & Bus → Event Contracts: publishes contracts
src/BuildingBlocks/BuildingBlocks.Messaging/Outbox/OutboxProcessorBackgroundService.cs - Saga Orchestrator → Event Contracts: handles events
- Ocelot Gateway → Observability: configures
src/ApiGateway/OcelotGateway/Program.cs