@eventcatalog/create-eventcatalog 4.3.3 → 4.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/default/README-template.md +3 -2
- package/templates/default/_data/visualizer-layouts/domains-systems-context/catalog/1.0.0.json +31 -0
- package/templates/default/_data/visualizer-layouts/domains-systems-context/customer/1.0.0.json +23 -0
- package/templates/default/_data/visualizer-layouts/system-context-map/system-context-map/1.0.0.json +91 -0
- package/templates/default/_data/visualizer-layouts/systems-context/customer-management-system/1.0.0.json +23 -0
- package/templates/default/components/footer.astro +0 -1
- package/templates/default/domains/Catalog/entities/category/index.mdx +36 -0
- package/templates/default/domains/Catalog/entities/product/index.mdx +37 -0
- package/templates/default/domains/Catalog/entities/product-variant/index.mdx +35 -0
- package/templates/default/domains/Catalog/entities/search-document/index.mdx +35 -0
- package/templates/default/domains/Catalog/index.mdx +65 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/adrs/adr-001-use-transactional-outbox/index.mdx +43 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/adrs/adr-002-postgres-as-system-of-record/index.mdx +40 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/adrs/adr-003-offload-async-work-to-worker/index.mdx +41 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/containers/product-database/index.mdx +45 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/containers/product-database/schema.sql +33 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/index.mdx +72 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/commands/CreateProduct/index.mdx +32 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/commands/CreateProduct/schema.json +41 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/commands/DeleteProduct/index.mdx +32 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/commands/DeleteProduct/schema.json +19 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/commands/UpdateProduct/index.mdx +32 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/commands/UpdateProduct/schema.json +42 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/events/ProductCreated/index.mdx +29 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/events/ProductCreated/schema.json +62 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/events/ProductDeleted/index.mdx +29 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/events/ProductDeleted/schema.json +29 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/events/ProductUpdated/index.mdx +29 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/events/ProductUpdated/schema.json +55 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/index.mdx +69 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/openapi.yml +219 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/queries/GetProduct/index.mdx +32 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/queries/GetProduct/schema.json +56 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductSearchPublisher/index.mdx +56 -0
- package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductWorker/index.mdx +48 -0
- package/templates/default/domains/Catalog/systems/search-system/containers/search-index/index.mdx +39 -0
- package/templates/default/domains/Catalog/systems/search-system/flows/ProductSearchIndexing/index.mdx +130 -0
- package/templates/default/domains/Catalog/systems/search-system/index.mdx +66 -0
- package/templates/default/domains/Catalog/systems/search-system/services/SearchAPI/index.mdx +44 -0
- package/templates/default/domains/Catalog/systems/search-system/services/SearchAPI/openapi.yml +138 -0
- package/templates/default/domains/Catalog/systems/search-system/services/SearchAPI/queries/SearchProducts/index.mdx +32 -0
- package/templates/default/domains/Catalog/systems/search-system/services/SearchAPI/queries/SearchProducts/schema.json +108 -0
- package/templates/default/domains/Catalog/systems/search-system/services/SearchIndexer/index.mdx +54 -0
- package/templates/default/domains/Catalog/ubiquitous-language.mdx +54 -0
- package/templates/default/domains/Customer/entities/authentication-session/index.mdx +35 -0
- package/templates/default/domains/Customer/entities/customer-account/index.mdx +36 -0
- package/templates/default/domains/Customer/entities/customer-address/index.mdx +35 -0
- package/templates/default/domains/Customer/entities/customer-profile/index.mdx +33 -0
- package/templates/default/domains/Customer/index.mdx +67 -0
- package/templates/default/domains/Customer/systems/customer-management-system/containers/customer-database/index.mdx +43 -0
- package/templates/default/domains/Customer/systems/customer-management-system/containers/customer-database/schema.sql +14 -0
- package/templates/default/domains/Customer/systems/customer-management-system/index.mdx +60 -0
- package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/commands/RegisterCustomer/index.mdx +32 -0
- package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/commands/RegisterCustomer/schema.json +24 -0
- package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/commands/UpdateCustomer/index.mdx +32 -0
- package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/commands/UpdateCustomer/schema.json +29 -0
- package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/events/CustomerRegistered/index.mdx +29 -0
- package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/events/CustomerRegistered/schema.json +45 -0
- package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/events/CustomerUpdated/index.mdx +29 -0
- package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/events/CustomerUpdated/schema.json +42 -0
- package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/index.mdx +72 -0
- package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/openapi.yml +164 -0
- package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/queries/GetCustomer/index.mdx +32 -0
- package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/queries/GetCustomer/schema.json +47 -0
- package/templates/default/domains/Customer/systems/identity-provider/containers/user-directory/index.mdx +36 -0
- package/templates/default/domains/Customer/systems/identity-provider/index.mdx +54 -0
- package/templates/default/domains/Customer/systems/identity-provider/services/OAuthAPI/commands/AuthenticateCustomer/index.mdx +32 -0
- package/templates/default/domains/Customer/systems/identity-provider/services/OAuthAPI/commands/AuthenticateCustomer/schema.json +41 -0
- package/templates/default/domains/Customer/systems/identity-provider/services/OAuthAPI/events/CustomerAuthenticated/index.mdx +29 -0
- package/templates/default/domains/Customer/systems/identity-provider/services/OAuthAPI/events/CustomerAuthenticated/schema.json +33 -0
- package/templates/default/domains/Customer/systems/identity-provider/services/OAuthAPI/index.mdx +59 -0
- package/templates/default/domains/Customer/ubiquitous-language.mdx +48 -0
- package/templates/default/domains/Fulfilment/entities/inventory-reservation/index.mdx +39 -0
- package/templates/default/domains/Fulfilment/entities/shipment/index.mdx +36 -0
- package/templates/default/domains/Fulfilment/entities/stock-item/index.mdx +36 -0
- package/templates/default/domains/Fulfilment/entities/warehouse-pick/index.mdx +35 -0
- package/templates/default/domains/Fulfilment/index.mdx +83 -0
- package/templates/default/domains/Fulfilment/systems/carrier/index.mdx +52 -0
- package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierShippingAPI/index.mdx +40 -0
- package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierTrackingAPI/events/ShipmentCreated/index.mdx +29 -0
- package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierTrackingAPI/events/ShipmentCreated/schema.json +15 -0
- package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierTrackingAPI/events/ShipmentDelivered/index.mdx +29 -0
- package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierTrackingAPI/events/ShipmentDelivered/schema.json +13 -0
- package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierTrackingAPI/events/ShipmentFailed/index.mdx +29 -0
- package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierTrackingAPI/events/ShipmentFailed/schema.json +16 -0
- package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierTrackingAPI/index.mdx +44 -0
- package/templates/default/domains/Fulfilment/systems/inventory-system/containers/inventory-database/index.mdx +35 -0
- package/templates/default/domains/Fulfilment/systems/inventory-system/containers/inventory-database/schema.sql +26 -0
- package/templates/default/domains/Fulfilment/systems/inventory-system/index.mdx +49 -0
- package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/commands/ReleaseInventory/index.mdx +32 -0
- package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/commands/ReleaseInventory/schema.json +14 -0
- package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/events/InventoryReserved/index.mdx +29 -0
- package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/events/InventoryReserved/schema.json +24 -0
- package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/events/InventoryUnavailable/index.mdx +29 -0
- package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/events/InventoryUnavailable/schema.json +24 -0
- package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/index.mdx +67 -0
- package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/queries/GetStockLevel/index.mdx +32 -0
- package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/queries/GetStockLevel/schema.json +25 -0
- package/templates/default/domains/Fulfilment/systems/shipping-system/index.mdx +47 -0
- package/templates/default/domains/Fulfilment/systems/shipping-system/services/CarrierAdapter/commands/CreateShipment/index.mdx +32 -0
- package/templates/default/domains/Fulfilment/systems/shipping-system/services/CarrierAdapter/commands/CreateShipment/schema.json +26 -0
- package/templates/default/domains/Fulfilment/systems/shipping-system/services/CarrierAdapter/index.mdx +40 -0
- package/templates/default/domains/Fulfilment/systems/shipping-system/services/ShippingAPI/index.mdx +40 -0
- package/templates/default/domains/Fulfilment/systems/warehouse-system/containers/warehouse-database/index.mdx +35 -0
- package/templates/default/domains/Fulfilment/systems/warehouse-system/containers/warehouse-database/schema.sql +21 -0
- package/templates/default/domains/Fulfilment/systems/warehouse-system/index.mdx +53 -0
- package/templates/default/domains/Fulfilment/systems/warehouse-system/services/PickingWorker/events/OrderPacked/index.mdx +29 -0
- package/templates/default/domains/Fulfilment/systems/warehouse-system/services/PickingWorker/events/OrderPacked/schema.json +13 -0
- package/templates/default/domains/Fulfilment/systems/warehouse-system/services/PickingWorker/index.mdx +44 -0
- package/templates/default/domains/Fulfilment/systems/warehouse-system/services/WarehouseService/events/OrderReadyForShipping/index.mdx +29 -0
- package/templates/default/domains/Fulfilment/systems/warehouse-system/services/WarehouseService/events/OrderReadyForShipping/schema.json +23 -0
- package/templates/default/domains/Fulfilment/systems/warehouse-system/services/WarehouseService/index.mdx +53 -0
- package/templates/default/domains/Fulfilment/ubiquitous-language.mdx +44 -0
- package/templates/default/domains/Ordering/entities/checkout-session/index.mdx +36 -0
- package/templates/default/domains/Ordering/entities/order/index.mdx +36 -0
- package/templates/default/domains/Ordering/entities/order-line/index.mdx +38 -0
- package/templates/default/domains/Ordering/entities/order-status-history/index.mdx +35 -0
- package/templates/default/domains/Ordering/flows/PlaceAnOrder/index.mdx +158 -0
- package/templates/default/domains/Ordering/index.mdx +70 -0
- package/templates/default/domains/Ordering/systems/checkout-system/flows/CheckoutSaga/index.mdx +101 -0
- package/templates/default/domains/Ordering/systems/checkout-system/index.mdx +57 -0
- package/templates/default/domains/Ordering/systems/checkout-system/services/CheckoutAPI/index.mdx +53 -0
- package/templates/default/domains/Ordering/systems/checkout-system/services/CheckoutOrchestrator/commands/AuthorizePayment/index.mdx +32 -0
- package/templates/default/domains/Ordering/systems/checkout-system/services/CheckoutOrchestrator/commands/AuthorizePayment/schema.json +29 -0
- package/templates/default/domains/Ordering/systems/checkout-system/services/CheckoutOrchestrator/commands/ReserveInventory/index.mdx +32 -0
- package/templates/default/domains/Ordering/systems/checkout-system/services/CheckoutOrchestrator/commands/ReserveInventory/schema.json +37 -0
- package/templates/default/domains/Ordering/systems/checkout-system/services/CheckoutOrchestrator/index.mdx +59 -0
- package/templates/default/domains/Ordering/systems/order-management-system/containers/order-database/index.mdx +39 -0
- package/templates/default/domains/Ordering/systems/order-management-system/containers/order-database/schema.sql +24 -0
- package/templates/default/domains/Ordering/systems/order-management-system/flows/OrderCancellation/index.mdx +105 -0
- package/templates/default/domains/Ordering/systems/order-management-system/index.mdx +53 -0
- package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/asyncapi.yml +233 -0
- package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/commands/CancelOrder/index.mdx +32 -0
- package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/commands/CancelOrder/schema.json +19 -0
- package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/commands/CreateOrder/index.mdx +32 -0
- package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/commands/CreateOrder/schema.json +55 -0
- package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/events/OrderCancelled/index.mdx +29 -0
- package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/events/OrderCancelled/schema.json +25 -0
- package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/events/OrderCompleted/index.mdx +29 -0
- package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/events/OrderCompleted/schema.json +21 -0
- package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/events/OrderCreated/index.mdx +29 -0
- package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/events/OrderCreated/schema.json +29 -0
- package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/index.mdx +74 -0
- package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/queries/GetOrder/index.mdx +32 -0
- package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/queries/GetOrder/schema.json +64 -0
- package/templates/default/domains/Ordering/ubiquitous-language.mdx +53 -0
- package/templates/default/domains/Payments/entities/fraud-check/index.mdx +39 -0
- package/templates/default/domains/Payments/entities/payment/index.mdx +36 -0
- package/templates/default/domains/Payments/entities/payment-authorization/index.mdx +35 -0
- package/templates/default/domains/Payments/entities/refund/index.mdx +36 -0
- package/templates/default/domains/Payments/index.mdx +69 -0
- package/templates/default/domains/Payments/systems/fraud-detection/index.mdx +49 -0
- package/templates/default/domains/Payments/systems/fraud-detection/services/FraudAPI/events/FraudCheckFailed/index.mdx +29 -0
- package/templates/default/domains/Payments/systems/fraud-detection/services/FraudAPI/events/FraudCheckFailed/schema.json +22 -0
- package/templates/default/domains/Payments/systems/fraud-detection/services/FraudAPI/events/FraudCheckPassed/index.mdx +29 -0
- package/templates/default/domains/Payments/systems/fraud-detection/services/FraudAPI/events/FraudCheckPassed/schema.json +18 -0
- package/templates/default/domains/Payments/systems/fraud-detection/services/FraudAPI/index.mdx +51 -0
- package/templates/default/domains/Payments/systems/payment-processing-system/containers/payment-database/index.mdx +39 -0
- package/templates/default/domains/Payments/systems/payment-processing-system/containers/payment-database/schema.sql +25 -0
- package/templates/default/domains/Payments/systems/payment-processing-system/index.mdx +53 -0
- package/templates/default/domains/Payments/systems/payment-processing-system/services/PaymentAPI/index.mdx +51 -0
- package/templates/default/domains/Payments/systems/payment-processing-system/services/PaymentWorker/events/PaymentRequested/index.mdx +29 -0
- package/templates/default/domains/Payments/systems/payment-processing-system/services/PaymentWorker/events/PaymentRequested/schema.json +19 -0
- package/templates/default/domains/Payments/systems/payment-processing-system/services/PaymentWorker/events/RefundRequested/index.mdx +29 -0
- package/templates/default/domains/Payments/systems/payment-processing-system/services/PaymentWorker/events/RefundRequested/schema.json +20 -0
- package/templates/default/domains/Payments/systems/payment-processing-system/services/PaymentWorker/index.mdx +66 -0
- package/templates/default/domains/Payments/systems/stripe/index.mdx +52 -0
- package/templates/default/domains/Payments/systems/stripe/services/StripePaymentsAPI/index.mdx +42 -0
- package/templates/default/domains/Payments/systems/stripe/services/StripeWebhookEndpoint/events/PaymentFailed/index.mdx +29 -0
- package/templates/default/domains/Payments/systems/stripe/services/StripeWebhookEndpoint/events/PaymentFailed/schema.json +16 -0
- package/templates/default/domains/Payments/systems/stripe/services/StripeWebhookEndpoint/events/PaymentSucceeded/index.mdx +29 -0
- package/templates/default/domains/Payments/systems/stripe/services/StripeWebhookEndpoint/events/PaymentSucceeded/schema.json +15 -0
- package/templates/default/domains/Payments/systems/stripe/services/StripeWebhookEndpoint/events/RefundProcessed/index.mdx +29 -0
- package/templates/default/domains/Payments/systems/stripe/services/StripeWebhookEndpoint/events/RefundProcessed/schema.json +14 -0
- package/templates/default/domains/Payments/systems/stripe/services/StripeWebhookEndpoint/index.mdx +44 -0
- package/templates/default/domains/Payments/ubiquitous-language.mdx +41 -0
- package/templates/default/domains/Reviews/asyncapi.yml +181 -0
- package/templates/default/domains/Reviews/containers/rating-cache/index.mdx +29 -0
- package/templates/default/domains/Reviews/containers/review-database/index.mdx +33 -0
- package/templates/default/domains/Reviews/entities/moderation-decision/index.mdx +38 -0
- package/templates/default/domains/Reviews/entities/rating-summary/index.mdx +35 -0
- package/templates/default/domains/Reviews/entities/review/index.mdx +63 -0
- package/templates/default/domains/Reviews/entities/review-flag/index.mdx +35 -0
- package/templates/default/domains/Reviews/entities/review-vote/index.mdx +38 -0
- package/templates/default/domains/Reviews/flows/review-submission/index.mdx +120 -0
- package/templates/default/domains/Reviews/index.mdx +93 -0
- package/templates/default/domains/Reviews/openapi.yml +209 -0
- package/templates/default/domains/Reviews/services/RatingAggregator/events/rating-updated/index.mdx +29 -0
- package/templates/default/domains/Reviews/services/RatingAggregator/events/rating-updated/schema.json +12 -0
- package/templates/default/domains/Reviews/services/RatingAggregator/index.mdx +47 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/commands/flag-review/index.mdx +29 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/commands/flag-review/schema.json +13 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/commands/submit-review/index.mdx +29 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/commands/submit-review/schema.json +15 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/commands/vote-review-helpful/index.mdx +29 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/commands/vote-review-helpful/schema.json +12 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/events/review-flagged/index.mdx +29 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/events/review-flagged/schema.json +13 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/events/review-helpful-voted/index.mdx +29 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/events/review-helpful-voted/schema.json +12 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/events/review-submitted/index.mdx +29 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/events/review-submitted/schema.json +15 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/index.mdx +58 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/queries/get-product-reviews/index.mdx +24 -0
- package/templates/default/domains/Reviews/services/ReviewAPI/queries/get-product-reviews/schema.json +12 -0
- package/templates/default/domains/Reviews/services/ReviewModerationWorker/events/review-published/index.mdx +29 -0
- package/templates/default/domains/Reviews/services/ReviewModerationWorker/events/review-published/schema.json +13 -0
- package/templates/default/domains/Reviews/services/ReviewModerationWorker/events/review-rejected/index.mdx +29 -0
- package/templates/default/domains/Reviews/services/ReviewModerationWorker/events/review-rejected/schema.json +12 -0
- package/templates/default/domains/Reviews/services/ReviewModerationWorker/index.mdx +50 -0
- package/templates/default/domains/Shopping/entities/cart/index.mdx +40 -0
- package/templates/default/domains/Shopping/entities/cart-item/index.mdx +38 -0
- package/templates/default/domains/Shopping/entities/discount/index.mdx +35 -0
- package/templates/default/domains/Shopping/entities/promotion/index.mdx +40 -0
- package/templates/default/domains/Shopping/index.mdx +67 -0
- package/templates/default/domains/Shopping/systems/cart-system/containers/cart-database/index.mdx +39 -0
- package/templates/default/domains/Shopping/systems/cart-system/containers/cart-database/schema.sql +22 -0
- package/templates/default/domains/Shopping/systems/cart-system/index.mdx +53 -0
- package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/commands/AddItemToCart/index.mdx +32 -0
- package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/commands/AddItemToCart/schema.json +25 -0
- package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/commands/CheckoutCart/index.mdx +32 -0
- package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/commands/CheckoutCart/schema.json +23 -0
- package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/commands/RemoveItemFromCart/index.mdx +32 -0
- package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/commands/RemoveItemFromCart/schema.json +24 -0
- package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/events/CartCheckedOut/index.mdx +29 -0
- package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/events/CartCheckedOut/schema.json +62 -0
- package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/index.mdx +72 -0
- package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/openapi.yml +200 -0
- package/templates/default/domains/Shopping/systems/promotion-system/containers/promotion-database/index.mdx +40 -0
- package/templates/default/domains/Shopping/systems/promotion-system/containers/promotion-database/schema.sql +21 -0
- package/templates/default/domains/Shopping/systems/promotion-system/index.mdx +48 -0
- package/templates/default/domains/Shopping/systems/promotion-system/services/PromotionService/commands/CalculateDiscount/index.mdx +32 -0
- package/templates/default/domains/Shopping/systems/promotion-system/services/PromotionService/commands/CalculateDiscount/schema.json +53 -0
- package/templates/default/domains/Shopping/systems/promotion-system/services/PromotionService/events/DiscountCalculated/index.mdx +29 -0
- package/templates/default/domains/Shopping/systems/promotion-system/services/PromotionService/events/DiscountCalculated/schema.json +37 -0
- package/templates/default/domains/Shopping/systems/promotion-system/services/PromotionService/index.mdx +59 -0
- package/templates/default/domains/Shopping/ubiquitous-language.mdx +48 -0
- package/templates/default/eventcatalog.config.js +13 -0
- package/templates/default/pages/homepage.astro +109 -0
- package/templates/default/public/icons/analytics/clickhouse.svg +1 -0
- package/templates/default/public/icons/cache/redis.svg +1 -0
- package/templates/default/public/icons/database/postgresql.svg +1 -0
- package/templates/default/public/icons/languages/go.svg +1 -0
- package/templates/default/public/icons/languages/java.svg +1 -0
- package/templates/default/public/icons/languages/nodejs.svg +1 -0
- package/templates/default/public/icons/payments/stripe.svg +1 -0
- package/templates/default/teams/customer-platform.mdx +18 -0
- package/templates/default/teams/fulfilment-platform.mdx +20 -0
- package/templates/default/teams/ordering-platform.mdx +18 -0
- package/templates/default/teams/payments-platform.mdx +18 -0
- package/templates/default/teams/product-platform.mdx +20 -0
- package/templates/default/teams/reviews-platform.mdx +20 -0
- package/templates/default/teams/search-platform.mdx +19 -0
- package/templates/default/teams/shopping-platform.mdx +18 -0
- package/templates/default/users/dboyne.mdx +1 -1
- package/templates/default/channels/inventory.{env}.events/index.mdx +0 -159
- package/templates/default/channels/orders.{env}.events/index.mdx +0 -85
- package/templates/default/channels/payment.{env}.events/index.mdx +0 -89
- package/templates/default/domains/E-Commerce/index.mdx +0 -140
- package/templates/default/domains/E-Commerce/ubiquitous-language.mdx +0 -87
- package/templates/default/domains/Orders/changelog.mdx +0 -7
- package/templates/default/domains/Orders/entities/CartItem/index.mdx +0 -124
- package/templates/default/domains/Orders/entities/Customer/index.mdx +0 -59
- package/templates/default/domains/Orders/entities/Order/index.mdx +0 -98
- package/templates/default/domains/Orders/entities/OrderItem/index.mdx +0 -62
- package/templates/default/domains/Orders/entities/ShoppingCart/index.mdx +0 -151
- package/templates/default/domains/Orders/index.mdx +0 -117
- package/templates/default/domains/Orders/services/InventoryService/changelog.mdx +0 -7
- package/templates/default/domains/Orders/services/InventoryService/channels/inventory-dlq/index.mdx +0 -13
- package/templates/default/domains/Orders/services/InventoryService/channels/inventory-queue/index.mdx +0 -13
- package/templates/default/domains/Orders/services/InventoryService/commands/AddInventory/index.mdx +0 -45
- package/templates/default/domains/Orders/services/InventoryService/commands/AddInventory/schema.json +0 -28
- package/templates/default/domains/Orders/services/InventoryService/commands/PlaceOrder/index.mdx +0 -34
- package/templates/default/domains/Orders/services/InventoryService/commands/PlaceOrder/schema.json +0 -124
- package/templates/default/domains/Orders/services/InventoryService/commands/UpdateInventory/index.mdx +0 -47
- package/templates/default/domains/Orders/services/InventoryService/commands/UpdateInventory/schema.json +0 -28
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/changelog.mdx +0 -67
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/examples/examples.config.yaml +0 -15
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/examples/stock-decrease.json +0 -23
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/examples/stock-increase.json +0 -23
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/index.mdx +0 -124
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/schema.avro +0 -13
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/schema.json +0 -35
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/0.0.1/changelog.mdx +0 -26
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/0.0.1/index.mdx +0 -23
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/0.0.1/schema.avro +0 -9
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/0.0.1/schema.json +0 -36
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/1.0.0/changelog.mdx +0 -26
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/1.0.0/index.mdx +0 -108
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/1.0.0/schema.avro +0 -10
- package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/1.0.0/schema.json +0 -36
- package/templates/default/domains/Orders/services/InventoryService/events/OutOfStock/examples/examples.config.yaml +0 -7
- package/templates/default/domains/Orders/services/InventoryService/events/OutOfStock/examples/product-depleted.json +0 -19
- package/templates/default/domains/Orders/services/InventoryService/events/OutOfStock/index.mdx +0 -102
- package/templates/default/domains/Orders/services/InventoryService/events/OutOfStock/schema.json +0 -28
- package/templates/default/domains/Orders/services/InventoryService/events/OutOfStock/versioned/0.0.1/index.mdx +0 -98
- package/templates/default/domains/Orders/services/InventoryService/events/OutOfStock/versioned/0.0.1/schema.json +0 -28
- package/templates/default/domains/Orders/services/InventoryService/index.mdx +0 -120
- package/templates/default/domains/Orders/services/InventoryService/queries/GetInventoryList/index.mdx +0 -22
- package/templates/default/domains/Orders/services/InventoryService/queries/GetInventoryList/schema.json +0 -52
- package/templates/default/domains/Orders/services/InventoryService/queries/GetInventoryStatus/index.mdx +0 -40
- package/templates/default/domains/Orders/services/InventoryService/queries/GetInventoryStatus/schema.json +0 -27
- package/templates/default/domains/Orders/services/InventoryService/versioned/0.0.1/index.mdx +0 -52
- package/templates/default/domains/Orders/services/NotificationService/index.mdx +0 -82
- package/templates/default/domains/Orders/services/NotificationService/queries/GetNotificationDetails/index.mdx +0 -26
- package/templates/default/domains/Orders/services/NotificationService/queries/GetNotificationDetails/schema.json +0 -55
- package/templates/default/domains/Orders/services/NotificationService/queries/GetUserNotifications/index.mdx +0 -26
- package/templates/default/domains/Orders/services/NotificationService/queries/GetUserNotifications/schema.json +0 -46
- package/templates/default/domains/Orders/services/OrdersService/changelog.mdx +0 -3
- package/templates/default/domains/Orders/services/OrdersService/events/OrderAmended/examples/address-change.json +0 -36
- package/templates/default/domains/Orders/services/OrdersService/events/OrderAmended/examples/examples.config.yaml +0 -15
- package/templates/default/domains/Orders/services/OrdersService/events/OrderAmended/examples/quantity-change.json +0 -29
- package/templates/default/domains/Orders/services/OrdersService/events/OrderAmended/index.mdx +0 -58
- package/templates/default/domains/Orders/services/OrdersService/events/OrderAmended/schema.avro +0 -75
- package/templates/default/domains/Orders/services/OrdersService/events/OrderAmended/schema.json +0 -70
- package/templates/default/domains/Orders/services/OrdersService/events/OrderCancelled/examples/customer-request.json +0 -34
- package/templates/default/domains/Orders/services/OrdersService/events/OrderCancelled/examples/examples.config.yaml +0 -15
- package/templates/default/domains/Orders/services/OrdersService/events/OrderCancelled/examples/out-of-stock.json +0 -28
- package/templates/default/domains/Orders/services/OrdersService/events/OrderCancelled/index.mdx +0 -54
- package/templates/default/domains/Orders/services/OrdersService/events/OrderCancelled/schema.json +0 -71
- package/templates/default/domains/Orders/services/OrdersService/events/OrderConfirmed/examples/examples.config.yaml +0 -15
- package/templates/default/domains/Orders/services/OrdersService/events/OrderConfirmed/examples/gift-order.json +0 -38
- package/templates/default/domains/Orders/services/OrdersService/events/OrderConfirmed/examples/standard-order.json +0 -42
- package/templates/default/domains/Orders/services/OrdersService/events/OrderConfirmed/index.mdx +0 -55
- package/templates/default/domains/Orders/services/OrdersService/events/OrderConfirmed/schema.json +0 -66
- package/templates/default/domains/Orders/services/OrdersService/index.mdx +0 -81
- package/templates/default/domains/Orders/services/OrdersService/openapi.yml +0 -185
- package/templates/default/domains/Orders/services/OrdersService/order-service-asyncapi.yaml +0 -148
- package/templates/default/domains/Orders/services/OrdersService/queries/GetOrder/index.mdx +0 -26
- package/templates/default/domains/Orders/services/OrdersService/versioned/0.0.2/changelog.mdx +0 -3
- package/templates/default/domains/Orders/services/OrdersService/versioned/0.0.2/index.mdx +0 -40
- package/templates/default/domains/Orders/services/OrdersService/versioned/0.0.2/openapi.yml +0 -96
- package/templates/default/domains/Orders/services/OrdersService/versioned/0.0.2/order-service-asyncapi.yaml +0 -148
- package/templates/default/domains/Orders/services/ShippingService/commands/CancelShipment/index.mdx +0 -22
- package/templates/default/domains/Orders/services/ShippingService/commands/CancelShipment/schema.json +0 -13
- package/templates/default/domains/Orders/services/ShippingService/commands/CreateReturnLabel/index.mdx +0 -22
- package/templates/default/domains/Orders/services/ShippingService/commands/CreateReturnLabel/schema.json +0 -19
- package/templates/default/domains/Orders/services/ShippingService/commands/CreateShipment/index.mdx +0 -22
- package/templates/default/domains/Orders/services/ShippingService/commands/CreateShipment/schema.json +0 -62
- package/templates/default/domains/Orders/services/ShippingService/commands/UpdateShipmentStatus/index.mdx +0 -22
- package/templates/default/domains/Orders/services/ShippingService/commands/UpdateShipmentStatus/schema.json +0 -29
- package/templates/default/domains/Orders/services/ShippingService/events/DeliveryFailed/examples/address-not-found.json +0 -23
- package/templates/default/domains/Orders/services/ShippingService/events/DeliveryFailed/examples/customer-unavailable.json +0 -40
- package/templates/default/domains/Orders/services/ShippingService/events/DeliveryFailed/examples/damaged-in-transit.json +0 -33
- package/templates/default/domains/Orders/services/ShippingService/events/DeliveryFailed/examples/examples.config.yaml +0 -23
- package/templates/default/domains/Orders/services/ShippingService/events/DeliveryFailed/index.mdx +0 -22
- package/templates/default/domains/Orders/services/ShippingService/events/DeliveryFailed/schema.json +0 -17
- package/templates/default/domains/Orders/services/ShippingService/events/ReturnInitiated/examples/defective-item.json +0 -33
- package/templates/default/domains/Orders/services/ShippingService/events/ReturnInitiated/examples/examples.config.yaml +0 -15
- package/templates/default/domains/Orders/services/ShippingService/events/ReturnInitiated/examples/wrong-item.json +0 -51
- package/templates/default/domains/Orders/services/ShippingService/events/ReturnInitiated/index.mdx +0 -22
- package/templates/default/domains/Orders/services/ShippingService/events/ReturnInitiated/schema.json +0 -17
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentCreated/examples/examples.config.yaml +0 -15
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentCreated/examples/multi-package.json +0 -76
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentCreated/examples/single-package.json +0 -51
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentCreated/index.mdx +0 -22
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentCreated/schema.json +0 -64
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDelivered/examples/examples.config.yaml +0 -15
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDelivered/examples/front-door-delivery.json +0 -30
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDelivered/examples/signed-delivery.json +0 -31
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDelivered/index.mdx +0 -22
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDelivered/schema.json +0 -17
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDispatched/examples/examples.config.yaml +0 -15
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDispatched/examples/express-shipping.json +0 -33
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDispatched/examples/standard-shipping.json +0 -32
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDispatched/index.mdx +0 -22
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDispatched/schema.json +0 -17
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentInTransit/examples/domestic-transit.json +0 -48
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentInTransit/examples/examples.config.yaml +0 -15
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentInTransit/examples/international-transit.json +0 -61
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentInTransit/index.mdx +0 -22
- package/templates/default/domains/Orders/services/ShippingService/events/ShipmentInTransit/schema.json +0 -17
- package/templates/default/domains/Orders/services/ShippingService/index.mdx +0 -61
- package/templates/default/domains/Orders/ubiquitous-language.mdx +0 -127
- package/templates/default/domains/Orders/versioned/0.0.1/index.mdx +0 -21
- package/templates/default/domains/Orders/versioned/0.0.2/index.mdx +0 -50
- package/templates/default/domains/Payment/entities/Address/index.mdx +0 -165
- package/templates/default/domains/Payment/entities/Invoice/index.mdx +0 -92
- package/templates/default/domains/Payment/entities/Payment/index.mdx +0 -140
- package/templates/default/domains/Payment/entities/PaymentMethod/index.mdx +0 -80
- package/templates/default/domains/Payment/entities/Transaction/index.mdx +0 -80
- package/templates/default/domains/Payment/flows/PaymentProcessed/index.mdx +0 -82
- package/templates/default/domains/Payment/index.mdx +0 -40
- package/templates/default/domains/Payment/services/FraudDetectionService/events/FraudCheckCompleted/examples/check-flagged.json +0 -50
- package/templates/default/domains/Payment/services/FraudDetectionService/events/FraudCheckCompleted/examples/check-passed.json +0 -45
- package/templates/default/domains/Payment/services/FraudDetectionService/events/FraudCheckCompleted/examples/examples.config.yaml +0 -15
- package/templates/default/domains/Payment/services/FraudDetectionService/events/FraudCheckCompleted/index.mdx +0 -50
- package/templates/default/domains/Payment/services/FraudDetectionService/events/FraudCheckCompleted/schema.json +0 -44
- package/templates/default/domains/Payment/services/FraudDetectionService/index.mdx +0 -62
- package/templates/default/domains/Payment/services/PaymentGatewayService/commands/ProcessPayment/index.mdx +0 -75
- package/templates/default/domains/Payment/services/PaymentGatewayService/commands/ProcessPayment/schema.json +0 -58
- package/templates/default/domains/Payment/services/PaymentGatewayService/events/PaymentFailed/examples/card-declined.json +0 -38
- package/templates/default/domains/Payment/services/PaymentGatewayService/events/PaymentFailed/examples/examples.config.yaml +0 -23
- package/templates/default/domains/Payment/services/PaymentGatewayService/events/PaymentFailed/examples/expired-card.json +0 -38
- package/templates/default/domains/Payment/services/PaymentGatewayService/events/PaymentFailed/examples/insufficient-funds.json +0 -38
- package/templates/default/domains/Payment/services/PaymentGatewayService/events/PaymentFailed/index.mdx +0 -64
- package/templates/default/domains/Payment/services/PaymentGatewayService/events/PaymentFailed/schema.json +0 -68
- package/templates/default/domains/Payment/services/PaymentGatewayService/index.mdx +0 -71
- package/templates/default/domains/Payment/services/PaymentService/events/PaymentInitiated/examples/examples.config.yaml +0 -15
- package/templates/default/domains/Payment/services/PaymentService/events/PaymentInitiated/examples/express-checkout.json +0 -45
- package/templates/default/domains/Payment/services/PaymentService/events/PaymentInitiated/examples/standard-checkout.json +0 -52
- package/templates/default/domains/Payment/services/PaymentService/events/PaymentInitiated/index.mdx +0 -37
- package/templates/default/domains/Payment/services/PaymentService/events/PaymentInitiated/schema.json +0 -31
- package/templates/default/domains/Payment/services/PaymentService/events/PaymentProcessed/examples/examples.config.yaml +0 -15
- package/templates/default/domains/Payment/services/PaymentService/events/PaymentProcessed/examples/international-payment.json +0 -48
- package/templates/default/domains/Payment/services/PaymentService/events/PaymentProcessed/examples/successful-payment.json +0 -48
- package/templates/default/domains/Payment/services/PaymentService/events/PaymentProcessed/index.mdx +0 -43
- package/templates/default/domains/Payment/services/PaymentService/events/PaymentProcessed/schema.json +0 -54
- package/templates/default/domains/Payment/services/PaymentService/events/PaymentProcessed/versioned/0.0.1/index.mdx +0 -43
- package/templates/default/domains/Payment/services/PaymentService/events/PaymentProcessed/versioned/0.0.1/schema.json +0 -54
- package/templates/default/domains/Payment/services/PaymentService/index.mdx +0 -41
- package/templates/default/domains/Payment/services/PaymentService/queries/GetPaymentStatus/index.mdx +0 -26
- package/templates/default/domains/Payment/services/PaymentService/queries/GetPaymentStatus/schema.json +0 -39
- package/templates/default/domains/Payment/ubiquitous-language.mdx +0 -96
- package/templates/default/domains/ProductCatalog/entities/Category/index.mdx +0 -127
- package/templates/default/domains/ProductCatalog/entities/Inventory/index.mdx +0 -119
- package/templates/default/domains/ProductCatalog/entities/Product/index.mdx +0 -118
- package/templates/default/domains/ProductCatalog/entities/Review/index.mdx +0 -157
- package/templates/default/domains/ProductCatalog/index.mdx +0 -73
- package/templates/default/domains/ProductCatalog/ubiquitous-language.mdx +0 -88
- package/templates/default/domains/Subscriptions/entities/BillingProfile/index.mdx +0 -71
- package/templates/default/domains/Subscriptions/entities/SubscriptionPeriod/index.mdx +0 -76
- package/templates/default/domains/Subscriptions/flows/CancelSubscription/SubscriptionRenewed/index.mdx +0 -300
- package/templates/default/domains/Subscriptions/flows/CancelSubscription/index.mdx +0 -69
- package/templates/default/domains/Subscriptions/flows/CancelSubscription/versioned/0.0.1/index.mdx +0 -51
- package/templates/default/domains/Subscriptions/index.mdx +0 -35
- package/templates/default/domains/Subscriptions/services/BillingService/events/SubscriptionPaymentDue/examples/examples.config.yaml +0 -7
- package/templates/default/domains/Subscriptions/services/BillingService/events/SubscriptionPaymentDue/examples/upcoming-renewal.json +0 -28
- package/templates/default/domains/Subscriptions/services/BillingService/events/SubscriptionPaymentDue/index.mdx +0 -63
- package/templates/default/domains/Subscriptions/services/BillingService/events/SubscriptionPaymentDue/schema.json +0 -54
- package/templates/default/domains/Subscriptions/services/BillingService/index.mdx +0 -83
- package/templates/default/domains/Subscriptions/services/PlanManagementService/index.mdx +0 -83
- package/templates/default/domains/Subscriptions/services/SubscriptionService/commands/CancelSubscription/index.mdx +0 -26
- package/templates/default/domains/Subscriptions/services/SubscriptionService/commands/CancelSubscription/schema.json +0 -30
- package/templates/default/domains/Subscriptions/services/SubscriptionService/commands/SubscribeUser/index.mdx +0 -26
- package/templates/default/domains/Subscriptions/services/SubscriptionService/commands/SubscribeUser/schema.json +0 -31
- package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionCancelled/examples/examples.config.yaml +0 -15
- package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionCancelled/examples/payment-failure.json +0 -25
- package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionCancelled/examples/voluntary-cancellation.json +0 -23
- package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionCancelled/index.mdx +0 -26
- package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionCancelled/schema.json +0 -35
- package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionStarted/examples/annual-plan.json +0 -26
- package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionStarted/examples/examples.config.yaml +0 -15
- package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionStarted/examples/monthly-plan.json +0 -25
- package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionStarted/index.mdx +0 -26
- package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionStarted/schema.json +0 -36
- package/templates/default/domains/Subscriptions/services/SubscriptionService/index.mdx +0 -62
- package/templates/default/domains/Subscriptions/services/SubscriptionService/queries/GetSubscriptionStatus/index.mdx +0 -26
- package/templates/default/domains/Subscriptions/services/SubscriptionService/queries/GetSubscriptionStatus/schema.json +0 -54
- package/templates/default/domains/Subscriptions/services/SubscriptionService/queries/GetSubscriptionStatus/versioned/0.0.1/index.mdx +0 -26
- package/templates/default/domains/Subscriptions/services/SubscriptionService/queries/GetSubscriptionStatus/versioned/0.0.1/schema.json +0 -54
- package/templates/default/domains/Subscriptions/ubiquitous-language.mdx +0 -129
- package/templates/default/teams/full-stack.mdx +0 -26
- package/templates/default/teams/mobile-devs.mdx +0 -23
- package/templates/default/users/aSmith.mdx +0 -27
- package/templates/default/users/mSmith.mdx +0 -9
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: place-an-order
|
|
3
|
+
name: Place an Order
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
summary: |
|
|
6
|
+
The end-to-end journey from a customer checking out their cart to a confirmed order — spanning the Shopping and Ordering domains, including the checkout saga and its failure path.
|
|
7
|
+
owners:
|
|
8
|
+
- ordering-platform
|
|
9
|
+
steps:
|
|
10
|
+
- id: shopper_checks_out
|
|
11
|
+
title: Shopper checks out
|
|
12
|
+
actor:
|
|
13
|
+
name: Shopper
|
|
14
|
+
summary: The customer confirms their cart and starts checkout.
|
|
15
|
+
next_step:
|
|
16
|
+
id: checkout_cart_command
|
|
17
|
+
label: Check out cart
|
|
18
|
+
|
|
19
|
+
- id: checkout_cart_command
|
|
20
|
+
title: Checkout Cart
|
|
21
|
+
message:
|
|
22
|
+
id: checkout-cart
|
|
23
|
+
version: 1.0.0
|
|
24
|
+
next_step:
|
|
25
|
+
id: cart_api
|
|
26
|
+
label: Price and finalise cart
|
|
27
|
+
|
|
28
|
+
- id: cart_api
|
|
29
|
+
title: Cart API
|
|
30
|
+
service:
|
|
31
|
+
id: cart-api
|
|
32
|
+
version: 1.0.0
|
|
33
|
+
next_step:
|
|
34
|
+
id: cart_checked_out
|
|
35
|
+
label: Publish checkout
|
|
36
|
+
|
|
37
|
+
- id: cart_checked_out
|
|
38
|
+
title: Cart Checked Out
|
|
39
|
+
message:
|
|
40
|
+
id: cart-checked-out
|
|
41
|
+
version: 1.0.0
|
|
42
|
+
next_step:
|
|
43
|
+
id: checkout_api
|
|
44
|
+
label: Start checkout flow
|
|
45
|
+
|
|
46
|
+
- id: checkout_api
|
|
47
|
+
title: Checkout API
|
|
48
|
+
service:
|
|
49
|
+
id: checkout-api
|
|
50
|
+
version: 1.0.0
|
|
51
|
+
next_step:
|
|
52
|
+
id: checkout_orchestrator
|
|
53
|
+
label: Run checkout saga
|
|
54
|
+
|
|
55
|
+
- id: checkout_orchestrator
|
|
56
|
+
title: Checkout Orchestrator
|
|
57
|
+
service:
|
|
58
|
+
id: checkout-orchestrator
|
|
59
|
+
version: 1.0.0
|
|
60
|
+
next_steps:
|
|
61
|
+
- id: reserve_inventory
|
|
62
|
+
label: Reserve inventory
|
|
63
|
+
- id: authorize_payment
|
|
64
|
+
label: Authorize payment
|
|
65
|
+
|
|
66
|
+
- id: reserve_inventory
|
|
67
|
+
title: Reserve Inventory
|
|
68
|
+
message:
|
|
69
|
+
id: reserve-inventory
|
|
70
|
+
version: 1.0.0
|
|
71
|
+
next_step:
|
|
72
|
+
id: authorize_payment
|
|
73
|
+
label: Inventory held
|
|
74
|
+
|
|
75
|
+
- id: authorize_payment
|
|
76
|
+
title: Authorize Payment
|
|
77
|
+
message:
|
|
78
|
+
id: authorize-payment
|
|
79
|
+
version: 1.0.0
|
|
80
|
+
next_steps:
|
|
81
|
+
- id: create_order
|
|
82
|
+
label: Payment authorized
|
|
83
|
+
- id: checkout_failed
|
|
84
|
+
label: Authorization declined
|
|
85
|
+
|
|
86
|
+
- id: create_order
|
|
87
|
+
title: Create Order
|
|
88
|
+
message:
|
|
89
|
+
id: create-order
|
|
90
|
+
version: 1.0.0
|
|
91
|
+
next_step:
|
|
92
|
+
id: order_service
|
|
93
|
+
label: Persist order
|
|
94
|
+
|
|
95
|
+
- id: order_service
|
|
96
|
+
title: Order Service
|
|
97
|
+
service:
|
|
98
|
+
id: order-service
|
|
99
|
+
version: 1.0.0
|
|
100
|
+
next_step:
|
|
101
|
+
id: order_created
|
|
102
|
+
label: Publish order created
|
|
103
|
+
|
|
104
|
+
- id: order_created
|
|
105
|
+
title: Order Created
|
|
106
|
+
message:
|
|
107
|
+
id: order-created
|
|
108
|
+
version: 1.0.0
|
|
109
|
+
next_step:
|
|
110
|
+
id: order_confirmed
|
|
111
|
+
label: Confirm to customer
|
|
112
|
+
|
|
113
|
+
- id: order_confirmed
|
|
114
|
+
title: Order confirmed
|
|
115
|
+
custom:
|
|
116
|
+
title: Order confirmed
|
|
117
|
+
color: green
|
|
118
|
+
icon: CheckCircleIcon
|
|
119
|
+
type: Outcome
|
|
120
|
+
summary: The customer's order is placed and confirmed. Fulfilment begins.
|
|
121
|
+
properties:
|
|
122
|
+
happy_path: 'true'
|
|
123
|
+
|
|
124
|
+
- id: checkout_failed
|
|
125
|
+
title: Checkout failed
|
|
126
|
+
custom:
|
|
127
|
+
title: Checkout failed
|
|
128
|
+
color: red
|
|
129
|
+
icon: ExclamationTriangleIcon
|
|
130
|
+
type: Exception
|
|
131
|
+
summary: A checkout step failed (e.g. payment declined). The orchestrator compensates earlier steps and cancels the order.
|
|
132
|
+
properties:
|
|
133
|
+
common_causes: 'payment declined, out of stock'
|
|
134
|
+
next_action: 'release reservation, void authorization, cancel order'
|
|
135
|
+
next_step:
|
|
136
|
+
id: order_cancelled
|
|
137
|
+
label: Cancel order
|
|
138
|
+
|
|
139
|
+
- id: order_cancelled
|
|
140
|
+
title: Order Cancelled
|
|
141
|
+
message:
|
|
142
|
+
id: order-cancelled
|
|
143
|
+
version: 1.0.0
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Overview
|
|
147
|
+
|
|
148
|
+
**Place an Order** is the headline business flow at Acme Inc. It begins in the [[domain|shopping]] domain, when a shopper checks out their cart, and finishes in the [[domain|ordering]] domain, with a confirmed order — or a compensated, cancelled one if a step fails.
|
|
149
|
+
|
|
150
|
+
<NodeGraph />
|
|
151
|
+
|
|
152
|
+
## How it works
|
|
153
|
+
|
|
154
|
+
1. The shopper checks out — the [[service|cart-api]] prices the cart and publishes [[event|cart-checked-out]].
|
|
155
|
+
2. The [[service|checkout-api]] picks this up and hands it to the [[service|checkout-orchestrator]].
|
|
156
|
+
3. The orchestrator runs the saga: [[command|reserve-inventory]] then [[command|authorize-payment]].
|
|
157
|
+
4. On success it sends [[command|create-order]] to the [[service|order-service]], which publishes [[event|order-created]].
|
|
158
|
+
5. If any step fails, the orchestrator compensates the earlier steps and the order is cancelled via [[event|order-cancelled]].
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ordering
|
|
3
|
+
name: Ordering
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
summary: |
|
|
6
|
+
The Ordering domain turns a checked-out cart into a confirmed order. It orchestrates checkout — reserving inventory, authorizing payment and creating the order — and owns the lifecycle of every order.
|
|
7
|
+
owners:
|
|
8
|
+
- ordering-platform
|
|
9
|
+
systems:
|
|
10
|
+
- id: checkout-system
|
|
11
|
+
version: 1.0.0
|
|
12
|
+
- id: order-management-system
|
|
13
|
+
version: 1.0.0
|
|
14
|
+
flows:
|
|
15
|
+
- id: place-an-order
|
|
16
|
+
version: 1.0.0
|
|
17
|
+
entities:
|
|
18
|
+
- id: checkout-session
|
|
19
|
+
version: 1.0.0
|
|
20
|
+
- id: order
|
|
21
|
+
version: 1.0.0
|
|
22
|
+
- id: order-line
|
|
23
|
+
version: 1.0.0
|
|
24
|
+
- id: order-status-history
|
|
25
|
+
version: 1.0.0
|
|
26
|
+
badges:
|
|
27
|
+
- content: Core domain
|
|
28
|
+
backgroundColor: blue
|
|
29
|
+
textColor: blue
|
|
30
|
+
icon: RectangleGroupIcon
|
|
31
|
+
- content: Business Critical
|
|
32
|
+
backgroundColor: red
|
|
33
|
+
textColor: red
|
|
34
|
+
icon: ShieldCheckIcon
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Overview
|
|
38
|
+
|
|
39
|
+
The **Ordering** domain is responsible for everything that happens once a customer commits to buy — from the moment their cart is checked out to a confirmed, fulfilled order. It is split into two systems:
|
|
40
|
+
|
|
41
|
+
<Tiles>
|
|
42
|
+
<Tile
|
|
43
|
+
icon="CreditCardIcon"
|
|
44
|
+
href="/docs/systems/checkout-system/1.0.0"
|
|
45
|
+
title="Checkout System"
|
|
46
|
+
description="Orchestrates checkout — reserves inventory, authorizes payment and creates the order."
|
|
47
|
+
/>
|
|
48
|
+
<Tile
|
|
49
|
+
icon="ClipboardDocumentListIcon"
|
|
50
|
+
href="/docs/systems/order-management-system/1.0.0"
|
|
51
|
+
title="Order Management System"
|
|
52
|
+
description="System of record for orders and their lifecycle."
|
|
53
|
+
/>
|
|
54
|
+
</Tiles>
|
|
55
|
+
|
|
56
|
+
### How the systems work together
|
|
57
|
+
|
|
58
|
+
When the [[domain|shopping]] domain checks out a cart, the **Checkout System** takes over. It orchestrates the steps needed to place an order — reserving inventory, authorizing payment, and finally asking the **Order Management System** to create the order. The Order Management System then owns that order for the rest of its life, publishing events as it is created, completed or cancelled.
|
|
59
|
+
|
|
60
|
+
## System Diagram
|
|
61
|
+
|
|
62
|
+
The systems in this domain, how they relate, and the people who interact with them.
|
|
63
|
+
|
|
64
|
+
<ContextDiagram />
|
|
65
|
+
|
|
66
|
+
## Resource Diagram
|
|
67
|
+
|
|
68
|
+
The components that make up this domain.
|
|
69
|
+
|
|
70
|
+
<NodeGraph />
|
package/templates/default/domains/Ordering/systems/checkout-system/flows/CheckoutSaga/index.mdx
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: checkout-saga
|
|
3
|
+
name: Checkout Saga
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
summary: |
|
|
6
|
+
How the Checkout Orchestrator turns a checked-out cart into an order — reserving inventory, authorizing payment and creating the order, with compensation when a step fails.
|
|
7
|
+
owners:
|
|
8
|
+
- ordering-platform
|
|
9
|
+
steps:
|
|
10
|
+
- id: cart_checked_out
|
|
11
|
+
title: Cart Checked Out
|
|
12
|
+
message:
|
|
13
|
+
id: cart-checked-out
|
|
14
|
+
version: 1.0.0
|
|
15
|
+
next_step:
|
|
16
|
+
id: checkout_api
|
|
17
|
+
label: Receive checkout
|
|
18
|
+
|
|
19
|
+
- id: checkout_api
|
|
20
|
+
title: Checkout API
|
|
21
|
+
service:
|
|
22
|
+
id: checkout-api
|
|
23
|
+
version: 1.0.0
|
|
24
|
+
next_step:
|
|
25
|
+
id: orchestrator
|
|
26
|
+
label: Start saga
|
|
27
|
+
|
|
28
|
+
- id: orchestrator
|
|
29
|
+
title: Checkout Orchestrator
|
|
30
|
+
service:
|
|
31
|
+
id: checkout-orchestrator
|
|
32
|
+
version: 1.0.0
|
|
33
|
+
next_step:
|
|
34
|
+
id: reserve_inventory
|
|
35
|
+
label: Step 1 — reserve inventory
|
|
36
|
+
|
|
37
|
+
- id: reserve_inventory
|
|
38
|
+
title: Reserve Inventory
|
|
39
|
+
message:
|
|
40
|
+
id: reserve-inventory
|
|
41
|
+
version: 1.0.0
|
|
42
|
+
next_steps:
|
|
43
|
+
- id: authorize_payment
|
|
44
|
+
label: Reserved
|
|
45
|
+
- id: compensate_release
|
|
46
|
+
label: Out of stock
|
|
47
|
+
|
|
48
|
+
- id: authorize_payment
|
|
49
|
+
title: Authorize Payment
|
|
50
|
+
message:
|
|
51
|
+
id: authorize-payment
|
|
52
|
+
version: 1.0.0
|
|
53
|
+
next_steps:
|
|
54
|
+
- id: create_order
|
|
55
|
+
label: Authorized
|
|
56
|
+
- id: compensate_release
|
|
57
|
+
label: Declined
|
|
58
|
+
|
|
59
|
+
- id: create_order
|
|
60
|
+
title: Create Order
|
|
61
|
+
message:
|
|
62
|
+
id: create-order
|
|
63
|
+
version: 1.0.0
|
|
64
|
+
next_step:
|
|
65
|
+
id: saga_complete
|
|
66
|
+
label: Order created
|
|
67
|
+
|
|
68
|
+
- id: saga_complete
|
|
69
|
+
title: Saga complete
|
|
70
|
+
custom:
|
|
71
|
+
title: Saga complete
|
|
72
|
+
color: green
|
|
73
|
+
icon: CheckCircleIcon
|
|
74
|
+
type: Outcome
|
|
75
|
+
summary: Inventory reserved, payment authorized and order created. The saga succeeds.
|
|
76
|
+
|
|
77
|
+
- id: compensate_release
|
|
78
|
+
title: Compensate
|
|
79
|
+
custom:
|
|
80
|
+
title: Compensate and abort
|
|
81
|
+
color: red
|
|
82
|
+
icon: ArrowUturnLeftIcon
|
|
83
|
+
type: Compensation
|
|
84
|
+
summary: A step failed. The orchestrator releases any reservation and voids any authorization, then aborts the saga without creating an order.
|
|
85
|
+
properties:
|
|
86
|
+
actions: 'release reservation, void authorization'
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Overview
|
|
90
|
+
|
|
91
|
+
The **Checkout Saga** is the heart of the [[system|checkout-system]]. It coordinates the steps that turn a checked-out cart into a confirmed order. Each step has a compensating action so a failure never leaves the customer in an inconsistent state.
|
|
92
|
+
|
|
93
|
+
<NodeGraph />
|
|
94
|
+
|
|
95
|
+
## Steps
|
|
96
|
+
|
|
97
|
+
1. **Reserve inventory** — [[command|reserve-inventory]] holds stock for the cart's items.
|
|
98
|
+
2. **Authorize payment** — [[command|authorize-payment]] places a hold on the order total.
|
|
99
|
+
3. **Create order** — [[command|create-order]] persists the order in the [[system|order-management-system]].
|
|
100
|
+
|
|
101
|
+
If reservation or authorization fails, the orchestrator **compensates** — releasing the reservation and voiding the authorization — and aborts without creating an order.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: checkout-system
|
|
3
|
+
name: Checkout System
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
summary: |
|
|
6
|
+
Internal system that orchestrates checkout. When a cart is checked out it reserves inventory, authorizes payment, and asks the Order Management System to create the order.
|
|
7
|
+
owners:
|
|
8
|
+
- ordering-platform
|
|
9
|
+
services:
|
|
10
|
+
- id: checkout-api
|
|
11
|
+
- id: checkout-orchestrator
|
|
12
|
+
flows:
|
|
13
|
+
- id: checkout-saga
|
|
14
|
+
version: 1.0.0
|
|
15
|
+
relationships:
|
|
16
|
+
- id: order-management-system
|
|
17
|
+
label: creates orders via
|
|
18
|
+
actors:
|
|
19
|
+
- id: shopper
|
|
20
|
+
name: Shopper
|
|
21
|
+
label: confirms checkout
|
|
22
|
+
direction: inbound
|
|
23
|
+
badges:
|
|
24
|
+
- content: Internal
|
|
25
|
+
backgroundColor: gray
|
|
26
|
+
textColor: gray
|
|
27
|
+
icon: LockClosedIcon
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Overview
|
|
31
|
+
|
|
32
|
+
The **Checkout System** drives the checkout flow at Acme Inc. When the [[domain|shopping]] domain checks out a cart, the [[service|checkout-api]] receives the [[command|checkout-cart]] command and hands it to the [[service|checkout-orchestrator]]. The orchestrator runs the checkout saga — reserving inventory via [[command|reserve-inventory]], authorizing payment via [[command|authorize-payment]], and finally creating the order via [[command|create-order]] against the [[system|order-management-system]].
|
|
33
|
+
|
|
34
|
+
## Context Diagram
|
|
35
|
+
|
|
36
|
+
How this system relates to the other systems around it.
|
|
37
|
+
|
|
38
|
+
<ContextDiagram />
|
|
39
|
+
|
|
40
|
+
## Resource Diagram
|
|
41
|
+
|
|
42
|
+
The services and messages that make up this system.
|
|
43
|
+
|
|
44
|
+
<NodeGraph />
|
|
45
|
+
|
|
46
|
+
## What's inside
|
|
47
|
+
|
|
48
|
+
| Component | Type | Responsibility |
|
|
49
|
+
| ---------------------------------- | ------- | ---------------------------------------------------------------------------- |
|
|
50
|
+
| [[service\|checkout-api]] | Service | Entry point for checkout. Receives the checkout command and starts the flow. |
|
|
51
|
+
| [[service\|checkout-orchestrator]] | Service | Runs the checkout saga — reserve inventory, authorize payment, create order. |
|
|
52
|
+
|
|
53
|
+
## Messages this system sends
|
|
54
|
+
|
|
55
|
+
- [[command\|reserve-inventory]] — reserve stock for the items in the cart.
|
|
56
|
+
- [[command\|authorize-payment]] — authorize payment for the order total.
|
|
57
|
+
- [[command\|create-order]] — create the order in the Order Management System.
|
package/templates/default/domains/Ordering/systems/checkout-system/services/CheckoutAPI/index.mdx
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: checkout-api
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
name: Checkout API
|
|
5
|
+
summary: |
|
|
6
|
+
The entry point to the Checkout System. Receives the checkout command from the Shopping domain and starts the checkout flow.
|
|
7
|
+
styles:
|
|
8
|
+
icon: /icons/languages/nodejs.svg
|
|
9
|
+
owners:
|
|
10
|
+
- ordering-platform
|
|
11
|
+
receives:
|
|
12
|
+
- id: checkout-cart
|
|
13
|
+
version: 1.0.0
|
|
14
|
+
repository:
|
|
15
|
+
language: TypeScript
|
|
16
|
+
url: 'https://github.com/acme/checkout-api'
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
import Footer from '@catalog/components/footer.astro';
|
|
20
|
+
|
|
21
|
+
## Overview
|
|
22
|
+
|
|
23
|
+
The **Checkout API** is the front door to the Checkout System. When the [[domain|shopping]] domain checks out a cart, this service receives the [[command|checkout-cart]] command, validates it, and hands the work to the [[service|checkout-orchestrator]] to run the checkout saga.
|
|
24
|
+
|
|
25
|
+
<Tiles>
|
|
26
|
+
<Tile
|
|
27
|
+
icon="BoltIcon"
|
|
28
|
+
href={`/visualiser/services/${frontmatter.id}/${frontmatter.version}`}
|
|
29
|
+
title={`Receives ${frontmatter.receives.length} message`}
|
|
30
|
+
description="The checkout command from Shopping"
|
|
31
|
+
/>
|
|
32
|
+
<Tile
|
|
33
|
+
icon="RectangleGroupIcon"
|
|
34
|
+
href="/docs/services/checkout-orchestrator/1.0.0"
|
|
35
|
+
title="Delegates to the Orchestrator"
|
|
36
|
+
description="The saga that runs checkout"
|
|
37
|
+
/>
|
|
38
|
+
</Tiles>
|
|
39
|
+
|
|
40
|
+
### Responsibilities
|
|
41
|
+
|
|
42
|
+
| Area | Description |
|
|
43
|
+
| --------------------- | --------------------------------------------------------------------------- |
|
|
44
|
+
| Checkout entry | Receives and validates [[command\|checkout-cart]] from the Shopping domain. |
|
|
45
|
+
| Orchestration handoff | Starts a checkout saga in the [[service\|checkout-orchestrator]]. |
|
|
46
|
+
|
|
47
|
+
## Architecture diagram
|
|
48
|
+
|
|
49
|
+
<NodeGraph />
|
|
50
|
+
|
|
51
|
+
<MessageTable format="all" limit={8} />
|
|
52
|
+
|
|
53
|
+
<Footer />
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: authorize-payment
|
|
3
|
+
name: Authorize Payment
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
summary: |
|
|
6
|
+
Command to authorize payment for the total of a checked-out cart.
|
|
7
|
+
owners:
|
|
8
|
+
- ordering-platform
|
|
9
|
+
schemaPath: schema.json
|
|
10
|
+
operation:
|
|
11
|
+
method: POST
|
|
12
|
+
path: /payments/authorize
|
|
13
|
+
statusCodes: ['201', '400', '402', '409']
|
|
14
|
+
sidebar:
|
|
15
|
+
badge: 'POST'
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
import Footer from '@catalog/components/footer.astro';
|
|
19
|
+
|
|
20
|
+
## Overview
|
|
21
|
+
|
|
22
|
+
`AuthorizePayment` is sent by the [[service|checkout-orchestrator]] to authorize payment for the order total. Authorization places a hold on the customer's payment method; the funds are captured once the order is created. If a later step fails, the authorization is voided.
|
|
23
|
+
|
|
24
|
+
## Architecture diagram
|
|
25
|
+
|
|
26
|
+
<NodeGraph />
|
|
27
|
+
|
|
28
|
+
## Schema
|
|
29
|
+
|
|
30
|
+
<SchemaViewer file="schema.json" title="JSON Schema" maxHeight="500" />
|
|
31
|
+
|
|
32
|
+
<Footer />
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "AuthorizePayment",
|
|
4
|
+
"description": "Command to authorize payment for the total of a checked-out cart",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"cartId": {
|
|
8
|
+
"description": "Identifier of the cart being checked out",
|
|
9
|
+
"type": "string",
|
|
10
|
+
"format": "uuid"
|
|
11
|
+
},
|
|
12
|
+
"customerId": {
|
|
13
|
+
"description": "Identifier of the customer paying",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"format": "uuid"
|
|
16
|
+
},
|
|
17
|
+
"amount": {
|
|
18
|
+
"description": "Amount to authorize, in minor units (e.g. cents)",
|
|
19
|
+
"type": "integer",
|
|
20
|
+
"minimum": 0
|
|
21
|
+
},
|
|
22
|
+
"currency": {
|
|
23
|
+
"description": "ISO 4217 currency code",
|
|
24
|
+
"type": "string",
|
|
25
|
+
"pattern": "^[A-Z]{3}$"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"required": ["cartId", "amount", "currency"]
|
|
29
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: reserve-inventory
|
|
3
|
+
name: Reserve Inventory
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
summary: |
|
|
6
|
+
Command to reserve stock for the items in a checked-out cart.
|
|
7
|
+
owners:
|
|
8
|
+
- ordering-platform
|
|
9
|
+
schemaPath: schema.json
|
|
10
|
+
operation:
|
|
11
|
+
method: POST
|
|
12
|
+
path: /reservations
|
|
13
|
+
statusCodes: ['201', '400', '409']
|
|
14
|
+
sidebar:
|
|
15
|
+
badge: 'POST'
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
import Footer from '@catalog/components/footer.astro';
|
|
19
|
+
|
|
20
|
+
## Overview
|
|
21
|
+
|
|
22
|
+
`ReserveInventory` is sent by the [[service|checkout-orchestrator]] to hold stock for the items in a checked-out cart. A successful reservation guarantees the inventory is available while payment is authorized. If a later checkout step fails, the reservation is released.
|
|
23
|
+
|
|
24
|
+
## Architecture diagram
|
|
25
|
+
|
|
26
|
+
<NodeGraph />
|
|
27
|
+
|
|
28
|
+
## Schema
|
|
29
|
+
|
|
30
|
+
<SchemaViewer file="schema.json" title="JSON Schema" maxHeight="500" />
|
|
31
|
+
|
|
32
|
+
<Footer />
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "ReserveInventory",
|
|
4
|
+
"description": "Command to reserve stock for the items in a checked-out cart",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"cartId": {
|
|
8
|
+
"description": "Identifier of the cart being checked out",
|
|
9
|
+
"type": "string",
|
|
10
|
+
"format": "uuid"
|
|
11
|
+
},
|
|
12
|
+
"customerId": {
|
|
13
|
+
"description": "Identifier of the customer checking out",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"format": "uuid"
|
|
16
|
+
},
|
|
17
|
+
"items": {
|
|
18
|
+
"description": "The items to reserve",
|
|
19
|
+
"type": "array",
|
|
20
|
+
"items": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"properties": {
|
|
23
|
+
"productId": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"format": "uuid"
|
|
26
|
+
},
|
|
27
|
+
"quantity": {
|
|
28
|
+
"type": "integer",
|
|
29
|
+
"minimum": 1
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"required": ["productId", "quantity"]
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"required": ["cartId", "items"]
|
|
37
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: checkout-orchestrator
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
name: Checkout Orchestrator
|
|
5
|
+
summary: |
|
|
6
|
+
Runs the checkout saga. Reserves inventory, authorizes payment and creates the order, coordinating the steps that turn a checked-out cart into a confirmed order.
|
|
7
|
+
styles:
|
|
8
|
+
icon: /icons/languages/nodejs.svg
|
|
9
|
+
owners:
|
|
10
|
+
- ordering-platform
|
|
11
|
+
sends:
|
|
12
|
+
- id: reserve-inventory
|
|
13
|
+
version: 1.0.0
|
|
14
|
+
- id: authorize-payment
|
|
15
|
+
version: 1.0.0
|
|
16
|
+
- id: create-order
|
|
17
|
+
version: 1.0.0
|
|
18
|
+
repository:
|
|
19
|
+
language: TypeScript
|
|
20
|
+
url: 'https://github.com/acme/checkout-orchestrator'
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
import Footer from '@catalog/components/footer.astro';
|
|
24
|
+
|
|
25
|
+
## Overview
|
|
26
|
+
|
|
27
|
+
The **Checkout Orchestrator** is the brain of the Checkout System. Once the [[service|checkout-api]] hands it a checkout, it runs the checkout saga step by step:
|
|
28
|
+
|
|
29
|
+
1. **Reserve inventory** — sends [[command|reserve-inventory]] to hold stock for the cart's items.
|
|
30
|
+
2. **Authorize payment** — sends [[command|authorize-payment]] to authorize the order total.
|
|
31
|
+
3. **Create the order** — sends [[command|create-order]] to the [[system|order-management-system]].
|
|
32
|
+
|
|
33
|
+
If any step fails, the orchestrator compensates the earlier steps (releasing the reservation, voiding the authorization) so the customer is never left in an inconsistent state.
|
|
34
|
+
|
|
35
|
+
<Tiles>
|
|
36
|
+
<Tile
|
|
37
|
+
icon="BoltIcon"
|
|
38
|
+
href={`/visualiser/services/${frontmatter.id}/${frontmatter.version}`}
|
|
39
|
+
title={`Sends ${frontmatter.sends.length} messages`}
|
|
40
|
+
description="Reserve inventory, authorize payment, create order"
|
|
41
|
+
/>
|
|
42
|
+
</Tiles>
|
|
43
|
+
|
|
44
|
+
### Responsibilities
|
|
45
|
+
|
|
46
|
+
| Area | Description |
|
|
47
|
+
| -------------- | ------------------------------------------------------------------------------------------------ |
|
|
48
|
+
| Inventory | Reserves stock via [[command\|reserve-inventory]]. |
|
|
49
|
+
| Payment | Authorizes the order total via [[command\|authorize-payment]]. |
|
|
50
|
+
| Order creation | Creates the order via [[command\|create-order]] against the [[system\|order-management-system]]. |
|
|
51
|
+
| Compensation | Rolls back earlier steps if a later step fails. |
|
|
52
|
+
|
|
53
|
+
## Architecture diagram
|
|
54
|
+
|
|
55
|
+
<NodeGraph />
|
|
56
|
+
|
|
57
|
+
<MessageTable format="all" limit={8} />
|
|
58
|
+
|
|
59
|
+
<Footer />
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: order-database
|
|
3
|
+
name: Order Database
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
summary: PostgreSQL database that is the system of record for orders and their items.
|
|
6
|
+
container_type: database
|
|
7
|
+
technology: postgres@16
|
|
8
|
+
authoritative: true
|
|
9
|
+
access_mode: readWrite
|
|
10
|
+
purpose: System of record for orders
|
|
11
|
+
classification: confidential
|
|
12
|
+
retention: 7y
|
|
13
|
+
residency: eu-west-1
|
|
14
|
+
styles:
|
|
15
|
+
icon: /icons/database/postgresql.svg
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<NodeGraph />
|
|
19
|
+
|
|
20
|
+
### What is this?
|
|
21
|
+
|
|
22
|
+
The **Order Database** is the authoritative store for orders at Acme Inc. The [[service|order-service]] reads from and writes to it as orders are created, cancelled and completed.
|
|
23
|
+
|
|
24
|
+
### What does it store?
|
|
25
|
+
|
|
26
|
+
- **Orders** — one row per order: id, customer, status, total and timestamps.
|
|
27
|
+
- **Order Items** — one row per item in an order: product, quantity and unit price.
|
|
28
|
+
|
|
29
|
+
### Schema
|
|
30
|
+
|
|
31
|
+
<AccordionGroup>
|
|
32
|
+
<Accordion title="Order Database schema">
|
|
33
|
+
<Schema file="schema.sql" lang="sql" title="schema.sql" />
|
|
34
|
+
</Accordion>
|
|
35
|
+
</AccordionGroup>
|
|
36
|
+
|
|
37
|
+
### Retention
|
|
38
|
+
|
|
39
|
+
Orders are financial records and are retained for **7 years** (see frontmatter) to meet accounting and audit requirements.
|