@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,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "DiscountCalculated",
|
|
4
|
+
"description": "Emitted when a discount has been calculated for a cart",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"eventId": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"format": "uuid"
|
|
10
|
+
},
|
|
11
|
+
"occurredAt": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"format": "date-time"
|
|
14
|
+
},
|
|
15
|
+
"cartId": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"format": "uuid"
|
|
18
|
+
},
|
|
19
|
+
"discount": {
|
|
20
|
+
"description": "Total discount applied, in minor units (e.g. cents)",
|
|
21
|
+
"type": "integer",
|
|
22
|
+
"minimum": 0
|
|
23
|
+
},
|
|
24
|
+
"currency": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"pattern": "^[A-Z]{3}$"
|
|
27
|
+
},
|
|
28
|
+
"appliedPromotions": {
|
|
29
|
+
"description": "Identifiers of the promotions that were applied",
|
|
30
|
+
"type": "array",
|
|
31
|
+
"items": {
|
|
32
|
+
"type": "string"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"required": ["eventId", "occurredAt", "cartId", "discount", "currency"]
|
|
37
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: promotion-service
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
name: Promotion Service
|
|
5
|
+
summary: |
|
|
6
|
+
Evaluates promotion rules and calculates the discount that applies to a cart. Receives discount requests and publishes the calculated result.
|
|
7
|
+
styles:
|
|
8
|
+
icon: /icons/languages/go.svg
|
|
9
|
+
owners:
|
|
10
|
+
- shopping-platform
|
|
11
|
+
receives:
|
|
12
|
+
- id: calculate-discount
|
|
13
|
+
version: 1.0.0
|
|
14
|
+
sends:
|
|
15
|
+
- id: discount-calculated
|
|
16
|
+
version: 1.0.0
|
|
17
|
+
readsFrom:
|
|
18
|
+
- id: promotion-database
|
|
19
|
+
repository:
|
|
20
|
+
language: Go
|
|
21
|
+
url: 'https://github.com/acme/promotion-service'
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
import Footer from '@catalog/components/footer.astro';
|
|
25
|
+
|
|
26
|
+
## Overview
|
|
27
|
+
|
|
28
|
+
The **Promotion Service** is the heart of the Promotion System. It receives [[command|calculate-discount]] requests from the [[system|cart-system]], evaluates the applicable rules from the [[container|promotion-database]], and publishes a [[event|discount-calculated]] event with the result.
|
|
29
|
+
|
|
30
|
+
<Tiles>
|
|
31
|
+
<Tile
|
|
32
|
+
icon="BoltIcon"
|
|
33
|
+
href={`/visualiser/services/${frontmatter.id}/${frontmatter.version}`}
|
|
34
|
+
title={`Sends ${frontmatter.sends.length} message`}
|
|
35
|
+
description="The calculated discount, published as an event"
|
|
36
|
+
/>
|
|
37
|
+
<Tile
|
|
38
|
+
icon="BoltIcon"
|
|
39
|
+
href={`/visualiser/services/${frontmatter.id}/${frontmatter.version}`}
|
|
40
|
+
title={`Receives ${frontmatter.receives.length} message`}
|
|
41
|
+
description="Discount calculation requests"
|
|
42
|
+
/>
|
|
43
|
+
</Tiles>
|
|
44
|
+
|
|
45
|
+
### Responsibilities
|
|
46
|
+
|
|
47
|
+
| Area | Description |
|
|
48
|
+
| -------------------- | ------------------------------------------------------------------------------ |
|
|
49
|
+
| Discount calculation | Handles [[command\|calculate-discount]] and evaluates promotion rules. |
|
|
50
|
+
| Rules | Reads promotion and discount rules from the [[container\|promotion-database]]. |
|
|
51
|
+
| Event publishing | Emits [[event\|discount-calculated]] with the calculated result. |
|
|
52
|
+
|
|
53
|
+
## Architecture diagram
|
|
54
|
+
|
|
55
|
+
<NodeGraph />
|
|
56
|
+
|
|
57
|
+
<MessageTable format="all" limit={4} />
|
|
58
|
+
|
|
59
|
+
<Footer />
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
dictionary:
|
|
3
|
+
- id: Cart
|
|
4
|
+
name: Cart
|
|
5
|
+
summary: "A customer's in-progress collection of items they intend to buy."
|
|
6
|
+
description: |
|
|
7
|
+
The cart is the central concept of the Shopping domain. It is owned by the Cart System, which
|
|
8
|
+
is the source of truth for cart contents. A cart has a status (OPEN, CHECKED_OUT or ABANDONED),
|
|
9
|
+
a customer, a currency, and a set of cart items. Carts are transient — abandoned carts are
|
|
10
|
+
pruned after a retention window.
|
|
11
|
+
icon: ShoppingCart
|
|
12
|
+
- id: Cart Item
|
|
13
|
+
name: Cart Item
|
|
14
|
+
summary: 'A single product line within a cart: a product, a quantity and a unit price.'
|
|
15
|
+
icon: ListOrdered
|
|
16
|
+
- id: Checkout
|
|
17
|
+
name: Checkout
|
|
18
|
+
summary: 'The act of finalising a cart — pricing it and committing to purchase.'
|
|
19
|
+
description: |
|
|
20
|
+
At checkout the Cart System prices the cart (including any discounts from the Promotion System)
|
|
21
|
+
and, on success, publishes a CartCheckedOut event that the rest of the business reacts to —
|
|
22
|
+
creating an order, taking payment and beginning fulfilment.
|
|
23
|
+
icon: CreditCard
|
|
24
|
+
- id: Promotion
|
|
25
|
+
name: Promotion
|
|
26
|
+
summary: 'A rule that reduces the price of a cart, such as a percentage off or a fixed amount.'
|
|
27
|
+
description: |
|
|
28
|
+
Promotions are owned by the Promotion System. Each promotion has a code, a type (PERCENTAGE or
|
|
29
|
+
FIXED_AMOUNT), a value, a validity window, and eligibility rules (e.g. minimum spend or customer
|
|
30
|
+
segment) that determine when it applies.
|
|
31
|
+
icon: Tag
|
|
32
|
+
- id: Discount
|
|
33
|
+
name: Discount
|
|
34
|
+
summary: 'The actual amount taken off a specific cart after evaluating the applicable promotions.'
|
|
35
|
+
description: |
|
|
36
|
+
A discount is the calculated result of applying promotions to a cart. The Cart System asks the
|
|
37
|
+
Promotion System to calculate it; the Promotion System evaluates the rules and returns the
|
|
38
|
+
discount, also publishing a DiscountCalculated event.
|
|
39
|
+
icon: Percent
|
|
40
|
+
- id: Subtotal
|
|
41
|
+
name: Subtotal
|
|
42
|
+
summary: "The total value of a cart's items before any discounts are applied."
|
|
43
|
+
icon: Calculator
|
|
44
|
+
- id: Promotion Code
|
|
45
|
+
name: Promotion Code
|
|
46
|
+
summary: 'A code a customer enters at checkout to apply a specific promotion.'
|
|
47
|
+
icon: Ticket
|
|
48
|
+
---
|
|
@@ -25,6 +25,19 @@ export default {
|
|
|
25
25
|
navigation: {
|
|
26
26
|
pages: ['list:top-level-domains', 'list:all'],
|
|
27
27
|
},
|
|
28
|
+
mermaid: {
|
|
29
|
+
enableSupportForElkLayout: true,
|
|
30
|
+
iconPacks: ['logos'],
|
|
31
|
+
},
|
|
32
|
+
rss: {
|
|
33
|
+
enabled: true,
|
|
34
|
+
limit: 15,
|
|
35
|
+
},
|
|
36
|
+
visualiser: {
|
|
37
|
+
channels: {
|
|
38
|
+
renderMode: 'flat',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
28
41
|
// Customize the logo, add your logo to public/ folder
|
|
29
42
|
logo: {
|
|
30
43
|
alt: '<organizationName> Logo',
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { getCollection } from 'astro:content';
|
|
3
|
+
|
|
4
|
+
// EventCatalog injects its components via Astro.props.components. Destructure the ones
|
|
5
|
+
// this landing page uses (including the SystemContextMap embed).
|
|
6
|
+
const { Tile, Tiles, SystemContextMap } = Astro.props.components;
|
|
7
|
+
|
|
8
|
+
// Count the catalog's top-level resources. We filter out versioned/ entries so each
|
|
9
|
+
// resource is counted once (by its latest version).
|
|
10
|
+
const isCurrent = (entry) => !entry.filePath?.includes('/versioned/');
|
|
11
|
+
|
|
12
|
+
const [domains, systems, services] = await Promise.all([
|
|
13
|
+
getCollection('domains'),
|
|
14
|
+
getCollection('systems'),
|
|
15
|
+
getCollection('services'),
|
|
16
|
+
]);
|
|
17
|
+
|
|
18
|
+
const stats = [
|
|
19
|
+
{ label: 'Domains', value: domains.filter(isCurrent).length, href: '/discover/domains' },
|
|
20
|
+
{ label: 'Systems', value: systems.filter(isCurrent).length, href: '/visualiser/system-context-map' },
|
|
21
|
+
{ label: 'Services', value: services.filter(isCurrent).length, href: '/discover/services' },
|
|
22
|
+
];
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
<div class="not-prose">
|
|
26
|
+
{/* Hero */}
|
|
27
|
+
<div class="pb-8 border-b border-[rgb(var(--ec-page-border))]">
|
|
28
|
+
<h1 class="text-4xl md:text-5xl font-bold text-[rgb(var(--ec-page-text))]">Acme Inc Catalog</h1>
|
|
29
|
+
<p class="mt-3 text-lg text-[rgb(var(--ec-page-text-muted))] max-w-3xl font-light">
|
|
30
|
+
Discover, explore and document the event-driven architecture that powers Acme Inc — our
|
|
31
|
+
domains, the systems inside them, and the services and messages that connect everything.
|
|
32
|
+
</p>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
{/* Stat cards */}
|
|
36
|
+
<div class="grid grid-cols-1 sm:grid-cols-3 gap-4 mt-8">
|
|
37
|
+
{
|
|
38
|
+
stats.map((stat) => (
|
|
39
|
+
<a
|
|
40
|
+
href={stat.href}
|
|
41
|
+
class="group rounded-xl border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] p-6 shadow-xs hover:shadow-md hover:border-[rgb(var(--ec-accent)/0.5)] transition-all"
|
|
42
|
+
>
|
|
43
|
+
<div class="text-4xl font-bold text-[rgb(var(--ec-page-text))]">{stat.value}</div>
|
|
44
|
+
<div class="mt-1 text-sm font-medium uppercase tracking-wide text-[rgb(var(--ec-page-text-muted))]">
|
|
45
|
+
{stat.label}
|
|
46
|
+
</div>
|
|
47
|
+
</a>
|
|
48
|
+
))
|
|
49
|
+
}
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
{/* System context map */}
|
|
53
|
+
<h2 class="text-2xl font-semibold text-[rgb(var(--ec-page-text))] mt-12 mb-2">System context map</h2>
|
|
54
|
+
<p class="text-[rgb(var(--ec-page-text-muted))] font-light mb-2">
|
|
55
|
+
How every system in the catalog relates — and the people who interact with them.
|
|
56
|
+
</p>
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
<SystemContextMap />
|
|
60
|
+
|
|
61
|
+
<div class="not-prose">
|
|
62
|
+
{/* Domains */}
|
|
63
|
+
<h2 class="text-2xl font-semibold text-[rgb(var(--ec-page-text))] mt-12 mb-4">Explore the domains</h2>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<Tiles columns={3}>
|
|
67
|
+
<Tile
|
|
68
|
+
icon="RectangleGroupIcon"
|
|
69
|
+
href="/docs/domains/catalog/1.0.0"
|
|
70
|
+
title="Catalog"
|
|
71
|
+
description="Source of truth for product data and the search that makes it discoverable."
|
|
72
|
+
/>
|
|
73
|
+
<Tile
|
|
74
|
+
icon="UserGroupIcon"
|
|
75
|
+
href="/docs/domains/customer/1.0.0"
|
|
76
|
+
title="Customer"
|
|
77
|
+
description="Customer profiles and authentication across Acme Inc."
|
|
78
|
+
/>
|
|
79
|
+
<Tile
|
|
80
|
+
icon="ShoppingCartIcon"
|
|
81
|
+
href="/docs/domains/shopping/1.0.0"
|
|
82
|
+
title="Shopping"
|
|
83
|
+
description="The shopping cart and the promotions applied to it at checkout."
|
|
84
|
+
/>
|
|
85
|
+
<Tile
|
|
86
|
+
icon="ClipboardDocumentListIcon"
|
|
87
|
+
href="/docs/domains/ordering/1.0.0"
|
|
88
|
+
title="Ordering"
|
|
89
|
+
description="Turning a checked-out cart into a confirmed order, from checkout to fulfilment."
|
|
90
|
+
/>
|
|
91
|
+
<Tile
|
|
92
|
+
icon="CreditCardIcon"
|
|
93
|
+
href="/docs/domains/payments/1.0.0"
|
|
94
|
+
title="Payments"
|
|
95
|
+
description="Taking payment and processing refunds, with external payment and fraud providers."
|
|
96
|
+
/>
|
|
97
|
+
<Tile
|
|
98
|
+
icon="TruckIcon"
|
|
99
|
+
href="/docs/domains/fulfilment/1.0.0"
|
|
100
|
+
title="Fulfilment"
|
|
101
|
+
description="Reserving stock, picking and packing orders, and shipping them to customers."
|
|
102
|
+
/>
|
|
103
|
+
<Tile
|
|
104
|
+
icon="StarIcon"
|
|
105
|
+
href="/docs/domains/reviews/1.0.0"
|
|
106
|
+
title="Reviews & Ratings"
|
|
107
|
+
description="Collecting, moderating and publishing customer reviews, and aggregating them into product ratings."
|
|
108
|
+
/>
|
|
109
|
+
</Tiles>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="#FFCC01" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>ClickHouse</title><path d="M21.333 10H24v4h-2.667ZM16 1.335h2.667v21.33H16Zm-5.333 0h2.666v21.33h-2.666ZM0 22.665V1.335h2.667v21.33zm5.333-21.33H8v21.33H5.333Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="#FF4438" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Redis</title><path d="M22.71 13.145c-1.66 2.092-3.452 4.483-7.038 4.483-3.203 0-4.397-2.825-4.48-5.12.701 1.484 2.073 2.685 4.214 2.63 4.117-.133 6.94-3.852 6.94-7.239 0-4.05-3.022-6.972-8.268-6.972-3.752 0-8.4 1.428-11.455 3.685C2.59 6.937 3.885 9.958 4.35 9.626c2.648-1.904 4.748-3.13 6.784-3.744C8.12 9.244.886 17.05 0 18.425c.1 1.261 1.66 4.648 2.424 4.648.232 0 .431-.133.664-.365a100.49 100.49 0 0 0 5.54-6.765c.222 3.104 1.748 6.898 6.014 6.898 3.819 0 7.604-2.756 9.33-8.965.2-.764-.73-1.361-1.261-.73zm-4.349-5.013c0 1.959-1.926 2.922-3.685 2.922-.941 0-1.664-.247-2.235-.568 1.051-1.592 2.092-3.225 3.21-4.973 1.972.334 2.71 1.43 2.71 2.619z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="#4169E1" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>PostgreSQL</title><path d="M23.5594 14.7228a.5269.5269 0 0 0-.0563-.1191c-.139-.2632-.4768-.3418-1.0074-.2321-1.6533.3411-2.2935.1312-2.5256-.0191 1.342-2.0482 2.445-4.522 3.0411-6.8297.2714-1.0507.7982-3.5237.1222-4.7316a1.5641 1.5641 0 0 0-.1509-.235C21.6931.9086 19.8007.0248 17.5099.0005c-1.4947-.0158-2.7705.3461-3.1161.4794a9.449 9.449 0 0 0-.5159-.0816 8.044 8.044 0 0 0-1.3114-.1278c-1.1822-.0184-2.2038.2642-3.0498.8406-.8573-.3211-4.7888-1.645-7.2219.0788C.9359 2.1526.3086 3.8733.4302 6.3043c.0409.818.5069 3.334 1.2423 5.7436.4598 1.5065.9387 2.7019 1.4334 3.582.553.9942 1.1259 1.5933 1.7143 1.7895.4474.1491 1.1327.1441 1.8581-.7279.8012-.9635 1.5903-1.8258 1.9446-2.2069.4351.2355.9064.3625 1.39.3772a.0569.0569 0 0 0 .0004.0041 11.0312 11.0312 0 0 0-.2472.3054c-.3389.4302-.4094.5197-1.5002.7443-.3102.064-1.1344.2339-1.1464.8115-.0025.1224.0329.2309.0919.3268.2269.4231.9216.6097 1.015.6331 1.3345.3335 2.5044.092 3.3714-.6787-.017 2.231.0775 4.4174.3454 5.0874.2212.5529.7618 1.9045 2.4692 1.9043.2505 0 .5263-.0291.8296-.0941 1.7819-.3821 2.5557-1.1696 2.855-2.9059.1503-.8707.4016-2.8753.5388-4.1012.0169-.0703.0357-.1207.057-.1362.0007-.0005.0697-.0471.4272.0307a.3673.3673 0 0 0 .0443.0068l.2539.0223.0149.001c.8468.0384 1.9114-.1426 2.5312-.4308.6438-.2988 1.8057-1.0323 1.5951-1.6698zM2.371 11.8765c-.7435-2.4358-1.1779-4.8851-1.2123-5.5719-.1086-2.1714.4171-3.6829 1.5623-4.4927 1.8367-1.2986 4.8398-.5408 6.108-.13-.0032.0032-.0066.0061-.0098.0094-2.0238 2.044-1.9758 5.536-1.9708 5.7495-.0002.0823.0066.1989.0162.3593.0348.5873.0996 1.6804-.0735 2.9184-.1609 1.1504.1937 2.2764.9728 3.0892.0806.0841.1648.1631.2518.2374-.3468.3714-1.1004 1.1926-1.9025 2.1576-.5677.6825-.9597.5517-1.0886.5087-.3919-.1307-.813-.5871-1.2381-1.3223-.4796-.839-.9635-2.0317-1.4155-3.5126zm6.0072 5.0871c-.1711-.0428-.3271-.1132-.4322-.1772.0889-.0394.2374-.0902.4833-.1409 1.2833-.2641 1.4815-.4506 1.9143-1.0002.0992-.126.2116-.2687.3673-.4426a.3549.3549 0 0 0 .0737-.1298c.1708-.1513.2724-.1099.4369-.0417.156.0646.3078.26.3695.4752.0291.1016.0619.2945-.0452.4444-.9043 1.2658-2.2216 1.2494-3.1676 1.0128zm2.094-3.988-.0525.141c-.133.3566-.2567.6881-.3334 1.003-.6674-.0021-1.3168-.2872-1.8105-.8024-.6279-.6551-.9131-1.5664-.7825-2.5004.1828-1.3079.1153-2.4468.079-3.0586-.005-.0857-.0095-.1607-.0122-.2199.2957-.2621 1.6659-.9962 2.6429-.7724.4459.1022.7176.4057.8305.928.5846 2.7038.0774 3.8307-.3302 4.7363-.084.1866-.1633.3629-.2311.5454zm7.3637 4.5725c-.0169.1768-.0358.376-.0618.5959l-.146.4383a.3547.3547 0 0 0-.0182.1077c-.0059.4747-.054.6489-.115.8693-.0634.2292-.1353.4891-.1794 1.0575-.11 1.4143-.8782 2.2267-2.4172 2.5565-1.5155.3251-1.7843-.4968-2.0212-1.2217a6.5824 6.5824 0 0 0-.0769-.2266c-.2154-.5858-.1911-1.4119-.1574-2.5551.0165-.5612-.0249-1.9013-.3302-2.6462.0044-.2932.0106-.5909.019-.8918a.3529.3529 0 0 0-.0153-.1126 1.4927 1.4927 0 0 0-.0439-.208c-.1226-.4283-.4213-.7866-.7797-.9351-.1424-.059-.4038-.1672-.7178-.0869.067-.276.1831-.5875.309-.9249l.0529-.142c.0595-.16.134-.3257.213-.5012.4265-.9476 1.0106-2.2453.3766-5.1772-.2374-1.0981-1.0304-1.6343-2.2324-1.5098-.7207.0746-1.3799.3654-1.7088.5321a5.6716 5.6716 0 0 0-.1958.1041c.0918-1.1064.4386-3.1741 1.7357-4.4823a4.0306 4.0306 0 0 1 .3033-.276.3532.3532 0 0 0 .1447-.0644c.7524-.5706 1.6945-.8506 2.802-.8325.4091.0067.8017.0339 1.1742.081 1.939.3544 3.2439 1.4468 4.0359 2.3827.8143.9623 1.2552 1.9315 1.4312 2.4543-1.3232-.1346-2.2234.1268-2.6797.779-.9926 1.4189.543 4.1729 1.2811 5.4964.1353.2426.2522.4522.2889.5413.2403.5825.5515.9713.7787 1.2552.0696.087.1372.1714.1885.245-.4008.1155-1.1208.3825-1.0552 1.717-.0123.1563-.0423.4469-.0834.8148-.0461.2077-.0702.4603-.0994.7662zm.8905-1.6211c-.0405-.8316.2691-.9185.5967-1.0105a2.8566 2.8566 0 0 0 .135-.0406 1.202 1.202 0 0 0 .1342.103c.5703.3765 1.5823.4213 3.0068.1344-.2016.1769-.5189.3994-.9533.6011-.4098.1903-1.0957.333-1.7473.3636-.7197.0336-1.0859-.0807-1.1721-.151zm.5695-9.2712c-.0059.3508-.0542.6692-.1054 1.0017-.055.3576-.112.7274-.1264 1.1762-.0142.4368.0404.8909.0932 1.3301.1066.887.216 1.8003-.2075 2.7014a3.5272 3.5272 0 0 1-.1876-.3856c-.0527-.1276-.1669-.3326-.3251-.6162-.6156-1.1041-2.0574-3.6896-1.3193-4.7446.3795-.5427 1.3408-.5661 2.1781-.463zm.2284 7.0137a12.3762 12.3762 0 0 0-.0853-.1074l-.0355-.0444c.7262-1.1995.5842-2.3862.4578-3.4385-.0519-.4318-.1009-.8396-.0885-1.2226.0129-.4061.0666-.7543.1185-1.0911.0639-.415.1288-.8443.1109-1.3505.0134-.0531.0188-.1158.0118-.1902-.0457-.4855-.5999-1.938-1.7294-3.253-.6076-.7073-1.4896-1.4972-2.6889-2.0395.5251-.1066 1.2328-.2035 2.0244-.1859 2.0515.0456 3.6746.8135 4.8242 2.2824a.908.908 0 0 1 .0667.1002c.7231 1.3556-.2762 6.2751-2.9867 10.5405zm-8.8166-6.1162c-.025.1794-.3089.4225-.6211.4225a.5821.5821 0 0 1-.0809-.0056c-.1873-.026-.3765-.144-.5059-.3156-.0458-.0605-.1203-.178-.1055-.2844.0055-.0401.0261-.0985.0925-.1488.1182-.0894.3518-.1226.6096-.0867.3163.0441.6426.1938.6113.4186zm7.9305-.4114c.0111.0792-.049.201-.1531.3102-.0683.0717-.212.1961-.4079.2232a.5456.5456 0 0 1-.075.0052c-.2935 0-.5414-.2344-.5607-.3717-.024-.1765.2641-.3106.5611-.352.297-.0414.6111.0088.6356.1851z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="#00ADD8" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Go</title><path d="M1.811 10.231c-.047 0-.058-.023-.035-.059l.246-.315c.023-.035.081-.058.128-.058h4.172c.046 0 .058.035.035.07l-.199.303c-.023.036-.082.07-.117.07zM.047 11.306c-.047 0-.059-.023-.035-.058l.245-.316c.023-.035.082-.058.129-.058h5.328c.047 0 .07.035.058.07l-.093.28c-.012.047-.058.07-.105.07zm2.828 1.075c-.047 0-.059-.035-.035-.07l.163-.292c.023-.035.07-.07.117-.07h2.337c.047 0 .07.035.07.082l-.023.28c0 .047-.047.082-.082.082zm12.129-2.36c-.736.187-1.239.327-1.963.514-.176.046-.187.058-.34-.117-.174-.199-.303-.327-.548-.444-.737-.362-1.45-.257-2.115.175-.795.514-1.204 1.274-1.192 2.22.011.935.654 1.706 1.577 1.835.795.105 1.46-.175 1.987-.77.105-.13.198-.27.315-.434H10.47c-.245 0-.304-.152-.222-.35.152-.362.432-.97.596-1.274a.315.315 0 01.292-.187h4.253c-.023.316-.023.631-.07.947a4.983 4.983 0 01-.958 2.29c-.841 1.11-1.94 1.8-3.33 1.986-1.145.152-2.209-.07-3.143-.77-.865-.655-1.356-1.52-1.484-2.595-.152-1.274.222-2.419.993-3.424.83-1.086 1.928-1.776 3.272-2.02 1.098-.2 2.15-.07 3.096.571.62.41 1.063.97 1.356 1.648.07.105.023.164-.117.2m3.868 6.461c-1.064-.024-2.034-.328-2.852-1.029a3.665 3.665 0 01-1.262-2.255c-.21-1.32.152-2.489.947-3.529.853-1.122 1.881-1.706 3.272-1.95 1.192-.21 2.314-.095 3.33.595.923.63 1.496 1.484 1.648 2.605.198 1.578-.257 2.863-1.344 3.962-.771.783-1.718 1.273-2.805 1.495-.315.06-.63.07-.934.106zm2.78-4.72c-.011-.153-.011-.27-.034-.387-.21-1.157-1.274-1.81-2.384-1.554-1.087.245-1.788.935-2.045 2.033-.21.912.234 1.835 1.075 2.21.643.28 1.285.244 1.905-.07.923-.48 1.425-1.228 1.484-2.233z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="#ED8B00" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Java</title><path d="M8.851 18.56s-.917.534.653.714c1.902.218 2.874.187 4.969-.211 0 0 .552.346 1.321.646-4.699 2.013-10.633-.118-6.943-1.149M8.276 15.933s-1.028.761.542.924c2.032.209 3.636.227 6.413-.308 0 0 .384.389.987.602-5.679 1.661-12.007.13-7.942-1.218M13.116 11.475c1.158 1.333-.304 2.533-.304 2.533s2.939-1.518 1.589-3.418c-1.261-1.772-2.228-2.652 3.007-5.688 0-.001-8.216 2.051-4.292 6.573M19.33 20.504s.679.559-.747.991c-2.712.822-11.288 1.069-13.669.033-.856-.373.75-.89 1.254-.998.527-.114.828-.093.828-.093-.953-.671-6.156 1.317-2.643 1.887 9.58 1.553 17.462-.7 14.977-1.82M9.292 13.21s-4.362 1.036-1.544 1.412c1.189.159 3.561.123 5.77-.062 1.806-.152 3.618-.477 3.618-.477s-.637.272-1.098.587c-4.429 1.165-12.986.623-10.522-.568 2.082-1.006 3.776-.892 3.776-.892M17.116 17.584c4.503-2.34 2.421-4.589.968-4.285-.355.074-.515.138-.515.138s.132-.207.385-.297c2.875-1.011 5.086 2.981-.928 4.562 0-.001.07-.062.09-.118M13.408 0s2.494 2.494-2.365 6.33c-3.896 3.077-.888 4.832-.001 6.836-2.274-2.053-3.943-3.858-2.824-5.539 1.644-2.469 6.197-3.665 5.19-7.627M9.734 23.924c4.322.277 10.959-.153 11.116-2.198 0 0-.302.775-3.572 1.391-3.688.694-8.239.613-10.937.168 0-.001.553.457 3.393.639"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="#5FA04E" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Node.js</title><path d="M11.998,24c-0.321,0-0.641-0.084-0.922-0.247l-2.936-1.737c-0.438-0.245-0.224-0.332-0.08-0.383 c0.585-0.203,0.703-0.25,1.328-0.604c0.065-0.037,0.151-0.023,0.218,0.017l2.256,1.339c0.082,0.045,0.197,0.045,0.272,0l8.795-5.076 c0.082-0.047,0.134-0.141,0.134-0.238V6.921c0-0.099-0.053-0.192-0.137-0.242l-8.791-5.072c-0.081-0.047-0.189-0.047-0.271,0 L3.075,6.68C2.99,6.729,2.936,6.825,2.936,6.921v10.15c0,0.097,0.054,0.189,0.139,0.235l2.409,1.392 c1.307,0.654,2.108-0.116,2.108-0.89V7.787c0-0.142,0.114-0.253,0.256-0.253h1.115c0.139,0,0.255,0.112,0.255,0.253v10.021 c0,1.745-0.95,2.745-2.604,2.745c-0.508,0-0.909,0-2.026-0.551L2.28,18.675c-0.57-0.329-0.922-0.945-0.922-1.604V6.921 c0-0.659,0.353-1.275,0.922-1.603l8.795-5.082c0.557-0.315,1.296-0.315,1.848,0l8.794,5.082c0.57,0.329,0.924,0.944,0.924,1.603 v10.15c0,0.659-0.354,1.273-0.924,1.604l-8.794,5.078C12.643,23.916,12.324,24,11.998,24z M19.099,13.993 c0-1.9-1.284-2.406-3.987-2.763c-2.731-0.361-3.009-0.548-3.009-1.187c0-0.528,0.235-1.233,2.258-1.233 c1.807,0,2.473,0.389,2.747,1.607c0.024,0.115,0.129,0.199,0.247,0.199h1.141c0.071,0,0.138-0.031,0.186-0.081 c0.048-0.054,0.074-0.123,0.067-0.196c-0.177-2.098-1.571-3.076-4.388-3.076c-2.508,0-4.004,1.058-4.004,2.833 c0,1.925,1.488,2.457,3.895,2.695c2.88,0.282,3.103,0.703,3.103,1.269c0,0.983-0.789,1.402-2.642,1.402 c-2.327,0-2.839-0.584-3.011-1.742c-0.02-0.124-0.126-0.215-0.253-0.215h-1.137c-0.141,0-0.254,0.112-0.254,0.253 c0,1.482,0.806,3.248,4.655,3.248C17.501,17.007,19.099,15.91,19.099,13.993z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="#635BFF" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Stripe</title><path d="M13.976 9.15c-2.172-.806-3.356-1.426-3.356-2.409 0-.831.683-1.305 1.901-1.305 2.227 0 4.515.858 6.090 1.631l.890-5.494C18.252.975 15.687 0 12.585 0 10.469 0 8.703.555 7.439 1.583 6.123 2.658 5.444 4.208 5.444 6.078c0 3.39 2.072 4.839 5.446 6.057 2.172.78 2.901 1.331 2.901 2.179 0 .825-.707 1.306-1.978 1.306-1.575 0-4.18-.78-5.886-1.768L5.04 19.601c1.46.831 4.157 1.673 6.952 1.673 2.235 0 4.098-.527 5.355-1.523 1.406-1.085 2.135-2.682 2.135-4.764 0-3.471-2.118-4.926-5.507-6.117v.28z"/></svg>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: customer-platform
|
|
3
|
+
name: Customer Platform
|
|
4
|
+
summary: Owns the Customer domain — customer profiles and authentication across Acme Inc.
|
|
5
|
+
members:
|
|
6
|
+
- dboyne
|
|
7
|
+
email: customer-platform@acme.test
|
|
8
|
+
slackDirectMessageUrl: https://acme.slack.com/channels/customer-platform
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
The **Customer Platform** team owns the [[domain|customer]] domain. They are responsible for how customers register, how their profiles are maintained, and how they authenticate.
|
|
14
|
+
|
|
15
|
+
## Responsibilities
|
|
16
|
+
|
|
17
|
+
- **Customer Management System** — registering, updating and reading customer profiles, and publishing customer change events.
|
|
18
|
+
- **Identity Provider** — authenticating customers and owning credentials in the user directory.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: fulfilment-platform
|
|
3
|
+
name: Fulfilment Platform
|
|
4
|
+
summary: Owns the Fulfilment domain — reserving stock, picking and packing orders, and shipping them to customers.
|
|
5
|
+
members:
|
|
6
|
+
- dboyne
|
|
7
|
+
email: fulfilment-platform@acme.test
|
|
8
|
+
slackDirectMessageUrl: https://acme.slack.com/channels/fulfilment-platform
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
The **Fulfilment Platform** team owns the [[domain|fulfilment]] domain. They are responsible for inventory, warehousing and shipping — everything that gets a confirmed order physically to the customer.
|
|
14
|
+
|
|
15
|
+
## Responsibilities
|
|
16
|
+
|
|
17
|
+
- **Inventory System** — tracking and reserving stock.
|
|
18
|
+
- **Warehouse System** — picking and packing orders.
|
|
19
|
+
- **Shipping System** — handing packed orders to carriers.
|
|
20
|
+
- Integration with external **Carriers** for delivery.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ordering-platform
|
|
3
|
+
name: Ordering Platform
|
|
4
|
+
summary: Owns the Ordering domain — turning a checked-out cart into a confirmed order.
|
|
5
|
+
members:
|
|
6
|
+
- dboyne
|
|
7
|
+
email: ordering-platform@acme.test
|
|
8
|
+
slackDirectMessageUrl: https://acme.slack.com/channels/ordering-platform
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
The **Ordering Platform** team owns the [[domain|ordering]] domain. They are responsible for the checkout flow that turns a checked-out cart into a confirmed order, and for the lifecycle of orders once they exist.
|
|
14
|
+
|
|
15
|
+
## Responsibilities
|
|
16
|
+
|
|
17
|
+
- **Checkout System** — orchestrating checkout: reserving inventory, authorizing payment and creating the order.
|
|
18
|
+
- **Order Management System** — the system of record for orders and their lifecycle.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: payments-platform
|
|
3
|
+
name: Payments Platform
|
|
4
|
+
summary: Owns the Payments domain — authorizing payments, processing refunds, and integrating with external payment and fraud providers.
|
|
5
|
+
members:
|
|
6
|
+
- dboyne
|
|
7
|
+
email: payments-platform@acme.test
|
|
8
|
+
slackDirectMessageUrl: https://acme.slack.com/channels/payments-platform
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
The **Payments Platform** team owns the [[domain|payments]] domain. They are responsible for taking payment for orders, processing refunds, and integrating with the external payment processor and fraud provider.
|
|
14
|
+
|
|
15
|
+
## Responsibilities
|
|
16
|
+
|
|
17
|
+
- **Payment Processing System** — orchestrating authorization, capture and refunds.
|
|
18
|
+
- Integrations with **Stripe** (payment processing) and **Fraud Detection** (fraud screening).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: product-platform
|
|
3
|
+
name: Product Platform
|
|
4
|
+
summary: Owns the Product Catalog System — the source of truth for product data at Acme Inc.
|
|
5
|
+
members:
|
|
6
|
+
- dboyne
|
|
7
|
+
email: product-platform@acme.test
|
|
8
|
+
slackDirectMessageUrl: https://acme.slack.com/channels/product-platform
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
The **Product Platform** team owns the [[system|product-catalog-system]]. They are responsible for how products are created, maintained and stored, and for reliably publishing product change events to the rest of the business.
|
|
14
|
+
|
|
15
|
+
## Responsibilities
|
|
16
|
+
|
|
17
|
+
- **Product API** — the public-facing API for creating, updating, deleting and reading products.
|
|
18
|
+
- **Product Worker** — asynchronous catalog processing (enrichment, media, bulk imports).
|
|
19
|
+
- **Product Search Publisher** — reliable, ordered delivery of product change events.
|
|
20
|
+
- **Product Database** — the PostgreSQL system of record for all product data.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: reviews-platform
|
|
3
|
+
name: Reviews Platform
|
|
4
|
+
summary: Owns the Reviews & Ratings domain — how customers review products and how those reviews are moderated, published and aggregated into ratings.
|
|
5
|
+
members:
|
|
6
|
+
- dboyne
|
|
7
|
+
email: reviews-platform@acme.test
|
|
8
|
+
slackDirectMessageUrl: https://acme.slack.com/channels/reviews-platform
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
The **Reviews Platform** team owns the [[domain|reviews]] domain. They are responsible for collecting customer reviews, moderating them, publishing the approved ones, and turning ratings into the aggregate scores shown across the storefront.
|
|
14
|
+
|
|
15
|
+
## Responsibilities
|
|
16
|
+
|
|
17
|
+
- **Review API** — accepts review submissions and serves product reviews.
|
|
18
|
+
- **Review Moderation Worker** — screens submitted reviews and decides whether to publish or reject them.
|
|
19
|
+
- **Rating Aggregator** — keeps each product's aggregate rating up to date as reviews are published.
|
|
20
|
+
- **Review Database** — the system of record for reviews and their moderation state.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: search-platform
|
|
3
|
+
name: Search Platform
|
|
4
|
+
summary: Owns the Search System — keeps the catalog discoverable through fast, relevant product search.
|
|
5
|
+
members:
|
|
6
|
+
- dboyne
|
|
7
|
+
email: search-platform@acme.test
|
|
8
|
+
slackDirectMessageUrl: https://acme.slack.com/channels/search-platform
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
The **Search Platform** team owns the [[system|search-system]]. They consume product change events, keep the search index in sync, and serve product search to the rest of Acme Inc.
|
|
14
|
+
|
|
15
|
+
## Responsibilities
|
|
16
|
+
|
|
17
|
+
- **Search API** — the public-facing API that serves product search queries.
|
|
18
|
+
- **Search Indexer** — consumes product change events and keeps the index current.
|
|
19
|
+
- **Search Index** — the search-optimised, rebuildable read model of the catalog.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: shopping-platform
|
|
3
|
+
name: Shopping Platform
|
|
4
|
+
summary: Owns the Shopping domain — the cart and the promotions applied to it.
|
|
5
|
+
members:
|
|
6
|
+
- dboyne
|
|
7
|
+
email: shopping-platform@acme.test
|
|
8
|
+
slackDirectMessageUrl: https://acme.slack.com/channels/shopping-platform
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
The **Shopping Platform** team owns the [[domain|shopping]] domain. They are responsible for the shopping cart, the checkout flow, and the promotions and discounts applied to a cart.
|
|
14
|
+
|
|
15
|
+
## Responsibilities
|
|
16
|
+
|
|
17
|
+
- **Cart System** — building, pricing and checking out shopping carts.
|
|
18
|
+
- **Promotion System** — evaluating promotion rules and calculating discounts.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: dboyne
|
|
3
3
|
name: David Boyne
|
|
4
|
-
summary: Tech Lead of the Full Stackers team
|
|
5
4
|
avatarUrl: 'https://pbs.twimg.com/profile_images/1262283153563140096/DYRDqKg6_400x400.png'
|
|
6
5
|
role: Lead developer
|
|
7
6
|
email: test@test.com
|
|
8
7
|
slackDirectMessageUrl: https://yourteam.slack.com/channels/boyney123
|
|
8
|
+
msTeamsDirectMessageUrl: https://teams.microsoft.com/l/chat/0/0?users=test@test.com
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
Hello! I'm David Boyne, the Tech Lead of an amazing team called Full Stackers. With a passion for building robust and scalable systems, I specialize in designing and implementing event-driven architectures that power modern, responsive applications.
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: inventory.{env}.events
|
|
3
|
-
name: Inventory Events Channel
|
|
4
|
-
version: 1.0.0
|
|
5
|
-
summary: |
|
|
6
|
-
Central event stream for all inventory-related events including stock updates, allocations, and adjustments
|
|
7
|
-
owners:
|
|
8
|
-
- dboyne
|
|
9
|
-
address: inventory.{env}.events
|
|
10
|
-
protocols:
|
|
11
|
-
- kafka
|
|
12
|
-
|
|
13
|
-
parameters:
|
|
14
|
-
env:
|
|
15
|
-
enum:
|
|
16
|
-
- dev
|
|
17
|
-
- sit
|
|
18
|
-
- prod
|
|
19
|
-
description: 'Environment to use'
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
### Overview
|
|
23
|
-
|
|
24
|
-
The Inventory Events channel is the central stream for all inventory-related events across the system. This includes stock level changes, inventory allocations, adjustments, and stocktake events. Events for a specific SKU are guaranteed to be processed in sequence when using productId as the partition key.
|
|
25
|
-
|
|
26
|
-
<ChannelInformation />
|
|
27
|
-
|
|
28
|
-
### Publishing and Subscribing to Events
|
|
29
|
-
|
|
30
|
-
#### Publishing Example
|
|
31
|
-
|
|
32
|
-
```python
|
|
33
|
-
from kafka import KafkaProducer
|
|
34
|
-
import json
|
|
35
|
-
from datetime import datetime
|
|
36
|
-
|
|
37
|
-
# Kafka configuration
|
|
38
|
-
bootstrap_servers = ['localhost:9092']
|
|
39
|
-
topic = f'inventory.{env}.events'
|
|
40
|
-
|
|
41
|
-
# Create a Kafka producer
|
|
42
|
-
producer = KafkaProducer(
|
|
43
|
-
bootstrap_servers=bootstrap_servers,
|
|
44
|
-
value_serializer=lambda v: json.dumps(v).encode('utf-8')
|
|
45
|
-
)
|
|
46
|
-
|
|
47
|
-
# Example inventory update event
|
|
48
|
-
inventory_event = {
|
|
49
|
-
"eventType": "STOCK_LEVEL_CHANGED",
|
|
50
|
-
"timestamp": datetime.utcnow().isoformat(),
|
|
51
|
-
"version": "1.0",
|
|
52
|
-
"payload": {
|
|
53
|
-
"productId": "PROD-456",
|
|
54
|
-
"locationId": "WH-123",
|
|
55
|
-
"previousQuantity": 100,
|
|
56
|
-
"newQuantity": 95,
|
|
57
|
-
"changeReason": "ORDER_FULFILLED",
|
|
58
|
-
"unitOfMeasure": "EACH",
|
|
59
|
-
"batchInfo": {
|
|
60
|
-
"batchId": "BATCH-789",
|
|
61
|
-
"expiryDate": "2025-12-31"
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
"metadata": {
|
|
65
|
-
"source": "warehouse_system",
|
|
66
|
-
"correlationId": "inv-xyz-123",
|
|
67
|
-
"userId": "john.doe"
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
# Send the message - using productId as key for partitioning
|
|
72
|
-
producer.send(
|
|
73
|
-
topic,
|
|
74
|
-
key=inventory_event['payload']['productId'].encode('utf-8'),
|
|
75
|
-
value=inventory_event
|
|
76
|
-
)
|
|
77
|
-
producer.flush()
|
|
78
|
-
|
|
79
|
-
print(f"Inventory event sent to topic {topic}")
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### Subscription example
|
|
84
|
-
|
|
85
|
-
```python
|
|
86
|
-
from kafka import KafkaConsumer
|
|
87
|
-
import json
|
|
88
|
-
from datetime import datetime
|
|
89
|
-
|
|
90
|
-
class InventoryEventConsumer:
|
|
91
|
-
def __init__(self):
|
|
92
|
-
# Kafka configuration
|
|
93
|
-
self.topic = f'inventory.{env}.events'
|
|
94
|
-
self.consumer = KafkaConsumer(
|
|
95
|
-
self.topic,
|
|
96
|
-
bootstrap_servers=['localhost:9092'],
|
|
97
|
-
group_id='inventory-processor-group',
|
|
98
|
-
auto_offset_reset='earliest',
|
|
99
|
-
enable_auto_commit=False,
|
|
100
|
-
value_deserializer=lambda x: json.loads(x.decode('utf-8')),
|
|
101
|
-
key_deserializer=lambda x: x.decode('utf-8') if x else None
|
|
102
|
-
)
|
|
103
|
-
|
|
104
|
-
def process_event(self, event):
|
|
105
|
-
"""Process individual inventory events based on type"""
|
|
106
|
-
event_type = event.get('eventType')
|
|
107
|
-
|
|
108
|
-
if event_type == 'STOCK_LEVEL_CHANGED':
|
|
109
|
-
self.handle_stock_level_change(event)
|
|
110
|
-
elif event_type == 'LOW_STOCK_ALERT':
|
|
111
|
-
self.handle_low_stock_alert(event)
|
|
112
|
-
# Add more event type handlers as needed
|
|
113
|
-
|
|
114
|
-
def handle_stock_level_change(self, event):
|
|
115
|
-
"""Handle stock level change events"""
|
|
116
|
-
payload = event['payload']
|
|
117
|
-
print(f"Stock level change detected for product {payload['productId']}")
|
|
118
|
-
print(f"New quantity: {payload['newQuantity']}")
|
|
119
|
-
# Add your business logic here
|
|
120
|
-
|
|
121
|
-
def handle_low_stock_alert(self, event):
|
|
122
|
-
"""Handle low stock alert events"""
|
|
123
|
-
payload = event['payload']
|
|
124
|
-
print(f"Low stock alert for product {payload['productId']}")
|
|
125
|
-
print(f"Current quantity: {payload['currentQuantity']}")
|
|
126
|
-
# Add your business logic here
|
|
127
|
-
|
|
128
|
-
def start_consuming(self):
|
|
129
|
-
"""Start consuming messages from the topic"""
|
|
130
|
-
try:
|
|
131
|
-
print(f"Starting consumption from topic: {self.topic}")
|
|
132
|
-
for message in self.consumer:
|
|
133
|
-
try:
|
|
134
|
-
# Process the message
|
|
135
|
-
event = message.value
|
|
136
|
-
print(f"Received event: {event['eventType']} for product: {event['payload']['productId']}")
|
|
137
|
-
|
|
138
|
-
# Process the event
|
|
139
|
-
self.process_event(event)
|
|
140
|
-
|
|
141
|
-
# Commit the offset after successful processing
|
|
142
|
-
self.consumer.commit()
|
|
143
|
-
|
|
144
|
-
except Exception as e:
|
|
145
|
-
print(f"Error processing message: {str(e)}")
|
|
146
|
-
# Implement your error handling logic here
|
|
147
|
-
# You might want to send to a DLQ (Dead Letter Queue)
|
|
148
|
-
|
|
149
|
-
except Exception as e:
|
|
150
|
-
print(f"Consumer error: {str(e)}")
|
|
151
|
-
finally:
|
|
152
|
-
# Clean up
|
|
153
|
-
self.consumer.close()
|
|
154
|
-
|
|
155
|
-
if __name__ == "__main__":
|
|
156
|
-
# Create and start the consumer
|
|
157
|
-
consumer = InventoryEventConsumer()
|
|
158
|
-
consumer.start_consuming()
|
|
159
|
-
```
|