Catalog Service
Catalog Service — products, prices and stock served to the storefront (dotnet/eShop Catalog.API). C4 system context: container-grade with 1 drill-down (the Catalog API) surrounded by its externally-evidenced neighbours.
- Catalog API · aspnet core
- Catalog Database · postgresql
- Embedding Provider · external integration
- Event Bus · rabbitmq
- Ordering Service · actor
- Storefront · actor
Catalog API
Catalog.API — the ASP.NET Core minimal-API microservice that owns the product catalog: catalog item CRUD/search (including AI vector search), the EF Core/PostgreSQL persistence layer, and integration events published/consumed over RabbitMQ. Board grain: terminal (component-grade) — files were consolidated into domain-coherent container nodes rather than drilled further; no child boards were proposed.
- Catalog AI (Embedding) Service · service
- Catalog API Endpoints · api endpoint
- Catalog API Host & Bootstrap · module
- Catalog Domain Model · schema model
- Text Embedding Provider · openai
- Catalog Event Bus (RabbitMQ) · rabbitmq
- Catalog Integration Event Handlers · handler component
- Catalog Integration Event Contracts · event message
- Catalog Integration Event Service · service
- Integration Events · domain group
- Catalog Persistence Layer · repository component
- Catalog PostgreSQL Database · postgresql
- Catalog Services Facade · service
Ordering Service
Ordering Service — basket checkout and the order lifecycle (payment, confirmation, shipping) from dotnet/eShop, split into an ASP.NET Core API host, a DDD domain model and an EF Core persistence layer. System context board: container-grade with 3 drill-downs (API, Domain, Infrastructure) and the externally evidenced systems they talk to.
- Web App / API Client · actor
- Catalog Service · microservice
- eShop Shared Libraries · library package
- RabbitMQ Event Bus · rabbitmq
- Identity Provider · external integration
- Ordering API · aspnet core
- orderingdb (PostgreSQL) · postgresql
- Ordering Domain · library package
- Ordering Infrastructure · library package
- Order Notifications · job worker
- Order Processor (grace period) · job worker
- Payment Processor · microservice
Ordering API
Ordering.API: the ASP.NET Core minimal-API host for the Ordering bounded context — order commands/queries via MediatR, domain and integration event handling, and identity/DB-seed infrastructure. Grain: terminal — the group plan for this unit's own files fits comfortably within the L1 band with no further drill-downs proposed.
- API Endpoints · domain group
- Api Extensions · module
- App Bootstrap · module
- Application Models · module
- Command Pipeline · domain group
- Commands · microservice
- Command Validators · handler component
- Ordering Context Seed · repository component
- Domain Event Handlers · handler component
- Identity Service · service component
- Infrastructure Utilities · domain group
- Integration Event Service Contract · service component
- Integration Events · microservice
- Integration & Identity · domain group
- Order Queries · repository component
- Orders Api · controller component
- Pipeline Behaviors · handler component
- Ordering Domain · boundary port
- Ordering Infrastructure · boundary port
Commands
MediatR CQRS commands and their handlers for the Ordering API — order creation, order status transitions and idempotent-request support. Grain: terminal (group-plan budgetVerdict fits at 18 files against the 5-20 L2 band, no drill-downs proposed).
- Cancel Order Command · handler component
- Create Order Command · handler component
- Create Order Draft Command · handler component
- Idempotency Support · domain group
- Identified Command · handler component
- Order Creation · domain group
- Order Status Transitions · domain group
- Api Extensions · boundary port
- Application Models · boundary port
- Set Awaiting Validation Order Status Command · handler component
- Set Paid Order Status Command · handler component
- Set Stock Confirmed Order Status Command · handler component
- Set Stock Rejected Order Status Command · handler component
- Ship Order Command · handler component
Integration Events
Ordering.API's integration-event surface: the events it consumes from other microservices via handlers, the events it publishes to announce order-status changes, and the service that drives the publish/log cycle through the event bus. Terminal grain: the group plan reads budgetVerdict "fits" (18 of 18 files, band 5-20) with no drill-down proposed, so this board stays at component grain.
- Consumed Integration Events · domain group
- Event Handlers · domain group
- GracePeriodConfirmedIntegrationEvent · event message
- GracePeriodConfirmedIntegrationEventHandler · handler component
- OrderingIntegrationEventService · service component
- OrderPaymentFailedIntegrationEvent · event message
- OrderPaymentFailedIntegrationEventHandler · handler component
- OrderPaymentSucceededIntegrationEvent · event message
- OrderPaymentSucceededIntegrationEventHandler · handler component
- OrderStartedIntegrationEvent · event message
- OrderStatusChangedToAwaitingValidationIntegrationEvent · event message
- OrderStatusChangedToCancelledIntegrationEvent · event message
- OrderStatusChangedToPaidIntegrationEvent · event message
- OrderStatusChangedToShippedIntegrationEvent · event message
- OrderStatusChangedToStockConfirmedIntegrationEvent · event message
- OrderStatusChangedToSubmittedIntegrationEvent · event message
- OrderStockConfirmedIntegrationEvent · event message
- OrderStockConfirmedIntegrationEventHandler · handler component
- OrderStockRejectedIntegrationEvent · event message
- OrderStockRejectedIntegrationEventHandler · handler component
- Published Integration Events · domain group
Ordering Domain
Ordering.Domain — the DDD domain model of the Ordering service: the Order and Buyer aggregates, their repository contracts, domain events, shared SeedWork base types, and domain exceptions. Terminal grain: the group plan reads budgetVerdict 'fits' with no drill-downs proposed, so this board is authored at component grain (one node per DDD building block) rather than as containers over sub-boards.
- Buyer Aggregate · aggregate
- Buyer Repository Contract · repository component
- Domain Events · event message
- Order Aggregate · aggregate
- OrderingDomainException · class interface
- Order Repository Contract · repository component
- SeedWork · module
Ordering Infrastructure
EF Core persistence layer for the Ordering service — the OrderingContext DbContext, its entity mappings, schema migration history, idempotent-request tracking, and aggregate repositories. Grain: terminal — the group plan's budget fits (21 predicted vs band 10-40) with no drill-downs proposed, so this board is authored at component grain.
- Buyer Repository · repository component
- Client Request · schema model
- Database Migrations · schema model
- Entity Configurations · schema model
- Idempotency · domain group
- Mediator Extension · handler component
- OrderingContext · repository component
- Order Repository · repository component
- Persistence Context · domain group
- Repositories · domain group
- Request Manager · service component
Web Shop
Shopper-facing storefront of the Online store: a Blazor Server web app (copied from dotnet/eShop) that browses the catalog, fills a basket and checks out by calling the Catalog, Basket, Ordering and Identity services, listening for order-status events on RabbitMQ and offering an AI chat assistant. Container-grade L0 with 1 drill-down (the WebApp deployable); the shared component library and the externally-evidenced systems it talks to are drawn inline.
- AI chat providers · domain group
- Online store backend services · domain group
- Basket API · microservice
- Catalog API · microservice
- eShop.ServiceDefaults · library package
- EventBusRabbitMQ · library package
- Identity API · microservice
- Ollama chat model · model runtime
- OpenAI chat model · azure openai
- Ordering API · microservice
- RabbitMQ event bus · rabbitmq
- Shared eShop libraries · domain group
- Shopper · actor
- WebApp · blazor
- WebApp Components · library package
WebApp
Internals of the WebApp deployable: a Blazor Server storefront wiring catalog, basket, ordering, order-status events and an AI shopping assistant, plus its browser-side JS enhancements. Terminal grain for its own 32 files — the plan reads `fits` at 33 predicted nodes with no drill-down verdicts — carrying one opaque drill-down to the `Components` board for the UI layer.
- App Bootstrap · domain group
- Application Host · module
- Basket & Ordering · domain group
- Basket Service · repository component
- Basket State · service component
- Card Tilt · ui component
- Cart Quantity · ui component
- Catalog Sort · ui component
- Chat Dock · ui component
- Chat Eyes · ui component
- Chat FAB · ui component
- Client-side UX Scripts · domain group
- Components · module
- Image Zoom · ui component
- Log Out Service · service component
- Ordering Service · service component
- Order Status Event Handlers · handler component
- Order Status Integration Events · event message
- Order Status Notifications · domain group
- Order Status Notification Service · service component
- Page Transitions · ui component
- WebApp Components · boundary port
- Product Image URL Provider · adapter component
- Service Registration · module
Components
Component internals of the Blazor Server storefront UI layer (`src/WebApp/Components`): the host document and router, the persistent layout chrome, the AI shopping assistant and the routable pages. Terminal grain — the plan reads `over-band` at 24 predicted nodes, but that folds to 22 once the colocated chat JS, the two endpoint-only account routes and the using-directives file are claimed by their hosts; one layer down would be individual class members.
- Host Document · layout component
- App Shell · domain group
- Cart Menu · ui component
- Bag Page · page component
- Catalog Page · page component
- Chat Pane · ui component
- Chat Engine · engine component
- Checkout Page · page component
- Component Imports · module
- Footer Bar · layout component
- Header Bar · layout component
- Item Page · page component
- Layout · domain group
- Main Layout · layout component
- Message Processor · component
- Orders Page · page component
- Order Status Refresher · ui component
- Pages · domain group
- Basket State · boundary port
- Log Out Service · boundary port
- Ordering Service · boundary port
- Order Status Notification Service · boundary port
- Router · controller component
- Shopping Assistant · domain group
- Chatbot Launcher · ui component
- Account Route Shims · page component
- User Menu · ui component