@eventcatalog/create-eventcatalog 4.3.2 → 4.3.4-beta.0
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 +8 -4
- package/package.json +1 -1
- package/templates/amazon-api-gateway/README-template.md +45 -18
- package/templates/asyncapi/README-template.md +39 -31
- package/templates/confluent/README-template.md +45 -18
- package/templates/default/README-template.md +40 -31
- 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/empty/README-template.md +39 -31
- package/templates/eventbridge/README-template.md +44 -17
- package/templates/graphql/README-template.md +39 -31
- package/templates/index.ts +1 -0
- package/templates/openapi/README-template.md +37 -33
- 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
package/templates/default/domains/Catalog/systems/search-system/containers/search-index/index.mdx
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: search-index
|
|
3
|
+
name: Search Index
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
summary: The denormalised, search-optimised index of products that powers product search.
|
|
6
|
+
container_type: searchIndex
|
|
7
|
+
technology: opensearch@2
|
|
8
|
+
authoritative: false
|
|
9
|
+
access_mode: readWrite
|
|
10
|
+
purpose: Serve fast, relevant product search
|
|
11
|
+
classification: internal
|
|
12
|
+
retention: rebuildable
|
|
13
|
+
residency: eu-west-1
|
|
14
|
+
styles:
|
|
15
|
+
icon: /icons/analytics/clickhouse.svg
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<NodeGraph />
|
|
19
|
+
|
|
20
|
+
### What is this?
|
|
21
|
+
|
|
22
|
+
The **Search Index** is a denormalised, search-optimised copy of the catalog. It is **not** a source of truth — it can be rebuilt at any time by replaying product events from the [[system|product-catalog-system]]. The [[service|search-indexer]] keeps it up to date, and the [[service|search-api]] reads from it to answer [[query|search-products]] queries.
|
|
23
|
+
|
|
24
|
+
### What does it store?
|
|
25
|
+
|
|
26
|
+
One document per product, optimised for search:
|
|
27
|
+
|
|
28
|
+
- Searchable text — name and description, analysed for full-text matching.
|
|
29
|
+
- Filterable fields — category, status, price, currency.
|
|
30
|
+
- A relevance signal used to rank results.
|
|
31
|
+
|
|
32
|
+
### Why is it not authoritative?
|
|
33
|
+
|
|
34
|
+
The system of record is the [[container|product-database]]. The index is a derived read model: if it is ever lost or corrupted, we rebuild it by replaying [[event|product-created]], [[event|product-updated]] and [[event|product-deleted]] events. This keeps search fast without coupling other teams to the catalog database.
|
|
35
|
+
|
|
36
|
+
### Operational notes
|
|
37
|
+
|
|
38
|
+
- **Rebuildable**: a full reindex is a supported, routine operation.
|
|
39
|
+
- **Eventually consistent**: changes appear in search shortly after the [[service|search-indexer]] processes the corresponding event.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: product-search-indexing
|
|
3
|
+
name: Product Search Indexing
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
summary: |
|
|
6
|
+
How a change to a product in the catalog reliably flows into the search index — via the outbox, product events and the indexer — so search stays in sync without coupling to the catalog database.
|
|
7
|
+
owners:
|
|
8
|
+
- search-platform
|
|
9
|
+
steps:
|
|
10
|
+
- id: merchant_edits_product
|
|
11
|
+
title: Merchant edits a product
|
|
12
|
+
actor:
|
|
13
|
+
name: Merchant
|
|
14
|
+
summary: A merchant creates or updates a product in the catalog.
|
|
15
|
+
next_step:
|
|
16
|
+
id: product_api
|
|
17
|
+
label: Apply change
|
|
18
|
+
|
|
19
|
+
- id: product_api
|
|
20
|
+
title: Product API
|
|
21
|
+
service:
|
|
22
|
+
id: product-api
|
|
23
|
+
version: 1.0.0
|
|
24
|
+
next_step:
|
|
25
|
+
id: product_database
|
|
26
|
+
label: Write change + outbox row
|
|
27
|
+
|
|
28
|
+
- id: product_database
|
|
29
|
+
title: Product Database
|
|
30
|
+
container:
|
|
31
|
+
id: product-database
|
|
32
|
+
next_step:
|
|
33
|
+
id: outbox_note
|
|
34
|
+
label: Outbox row committed
|
|
35
|
+
|
|
36
|
+
- id: outbox_note
|
|
37
|
+
title: Outbox pattern
|
|
38
|
+
custom:
|
|
39
|
+
title: Transactional outbox
|
|
40
|
+
color: blue
|
|
41
|
+
icon: InboxStackIcon
|
|
42
|
+
type: Pattern
|
|
43
|
+
summary: The product change and an outbox row are written in the same transaction, so the event can never be lost or out of sync with the data.
|
|
44
|
+
properties:
|
|
45
|
+
guarantee: 'change and event are atomic'
|
|
46
|
+
next_step:
|
|
47
|
+
id: product_search_publisher
|
|
48
|
+
label: Drain outbox
|
|
49
|
+
|
|
50
|
+
- id: product_search_publisher
|
|
51
|
+
title: Product Search Publisher
|
|
52
|
+
service:
|
|
53
|
+
id: product-search-publisher
|
|
54
|
+
version: 1.0.0
|
|
55
|
+
next_steps:
|
|
56
|
+
- id: product_created
|
|
57
|
+
label: Created
|
|
58
|
+
- id: product_updated
|
|
59
|
+
label: Updated
|
|
60
|
+
- id: product_deleted
|
|
61
|
+
label: Deleted
|
|
62
|
+
|
|
63
|
+
- id: product_created
|
|
64
|
+
title: Product Created
|
|
65
|
+
message:
|
|
66
|
+
id: product-created
|
|
67
|
+
version: 1.0.0
|
|
68
|
+
next_step:
|
|
69
|
+
id: search_indexer
|
|
70
|
+
label: Index product
|
|
71
|
+
|
|
72
|
+
- id: product_updated
|
|
73
|
+
title: Product Updated
|
|
74
|
+
message:
|
|
75
|
+
id: product-updated
|
|
76
|
+
version: 1.0.0
|
|
77
|
+
next_step:
|
|
78
|
+
id: search_indexer
|
|
79
|
+
label: Re-index product
|
|
80
|
+
|
|
81
|
+
- id: product_deleted
|
|
82
|
+
title: Product Deleted
|
|
83
|
+
message:
|
|
84
|
+
id: product-deleted
|
|
85
|
+
version: 1.0.0
|
|
86
|
+
next_step:
|
|
87
|
+
id: search_indexer
|
|
88
|
+
label: Remove from index
|
|
89
|
+
|
|
90
|
+
- id: search_indexer
|
|
91
|
+
title: Search Indexer
|
|
92
|
+
service:
|
|
93
|
+
id: search-indexer
|
|
94
|
+
version: 1.0.0
|
|
95
|
+
next_step:
|
|
96
|
+
id: search_index
|
|
97
|
+
label: Apply to index
|
|
98
|
+
|
|
99
|
+
- id: search_index
|
|
100
|
+
title: Search Index
|
|
101
|
+
container:
|
|
102
|
+
id: search-index
|
|
103
|
+
next_step:
|
|
104
|
+
id: searchable
|
|
105
|
+
label: Available to search
|
|
106
|
+
|
|
107
|
+
- id: searchable
|
|
108
|
+
title: Product is searchable
|
|
109
|
+
custom:
|
|
110
|
+
title: Product is searchable
|
|
111
|
+
color: green
|
|
112
|
+
icon: MagnifyingGlassIcon
|
|
113
|
+
type: Outcome
|
|
114
|
+
summary: The change is reflected in the search index and immediately available to customers via the Search API.
|
|
115
|
+
properties:
|
|
116
|
+
read_model: 'derived, rebuildable from events'
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Overview
|
|
120
|
+
|
|
121
|
+
**Product Search Indexing** documents how the [[system|search-system]] keeps its index in sync with the catalog. The search index is a derived read model — never a source of truth — so it can be rebuilt at any time by replaying product events.
|
|
122
|
+
|
|
123
|
+
<NodeGraph />
|
|
124
|
+
|
|
125
|
+
## How it works
|
|
126
|
+
|
|
127
|
+
1. A merchant changes a product via the [[service|product-api]], which writes the change and an outbox row to the [[container|product-database]] in one transaction.
|
|
128
|
+
2. The [[service|product-search-publisher]] reliably drains the outbox and publishes [[event|product-created]], [[event|product-updated]] or [[event|product-deleted]].
|
|
129
|
+
3. The [[service|search-indexer]] consumes those events and applies them to the [[container|search-index]].
|
|
130
|
+
4. The change is now searchable via the Search API — with no direct coupling between search and the catalog database.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: search-system
|
|
3
|
+
name: Search System
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
summary: |
|
|
6
|
+
Internal system that keeps product data searchable. Consumes product change events from the Product Catalog System, maintains a search index, and serves fast product search to the rest of the business.
|
|
7
|
+
owners:
|
|
8
|
+
- search-platform
|
|
9
|
+
services:
|
|
10
|
+
- id: search-api
|
|
11
|
+
- id: search-indexer
|
|
12
|
+
containers:
|
|
13
|
+
- id: search-index
|
|
14
|
+
flows:
|
|
15
|
+
- id: product-search-indexing
|
|
16
|
+
version: 1.0.0
|
|
17
|
+
relationships:
|
|
18
|
+
- id: product-catalog-system
|
|
19
|
+
label: indexes product changes from
|
|
20
|
+
actors:
|
|
21
|
+
- id: shopper
|
|
22
|
+
name: Shopper
|
|
23
|
+
label: searches for products
|
|
24
|
+
direction: inbound
|
|
25
|
+
- id: storefront-team
|
|
26
|
+
name: Storefront Team
|
|
27
|
+
label: integrates product search
|
|
28
|
+
direction: inbound
|
|
29
|
+
badges:
|
|
30
|
+
- content: Internal
|
|
31
|
+
backgroundColor: gray
|
|
32
|
+
textColor: gray
|
|
33
|
+
icon: LockClosedIcon
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Overview
|
|
37
|
+
|
|
38
|
+
The **Search System** makes the catalog discoverable. It subscribes to product change events published by the [[system|product-catalog-system]], updates its [[container|search-index]], and exposes a search API so other teams can find products without ever touching the catalog database directly.
|
|
39
|
+
|
|
40
|
+
## Context Diagram
|
|
41
|
+
|
|
42
|
+
How this system relates to the other systems around it.
|
|
43
|
+
|
|
44
|
+
<ContextDiagram />
|
|
45
|
+
|
|
46
|
+
## Resource Diagram
|
|
47
|
+
|
|
48
|
+
The services, data stores and messages that make up this system.
|
|
49
|
+
|
|
50
|
+
<NodeGraph />
|
|
51
|
+
|
|
52
|
+
## What's inside
|
|
53
|
+
|
|
54
|
+
| Component | Type | Responsibility |
|
|
55
|
+
| --------------------------- | ---------- | --------------------------------------------------------------------- |
|
|
56
|
+
| [[service\|search-api]] | Service | Public-facing API. Serves product search queries from the index. |
|
|
57
|
+
| [[service\|search-indexer]] | Service | Consumes product change events and keeps the search index up to date. |
|
|
58
|
+
| [[container\|search-index]] | Data store | The index that powers product search. |
|
|
59
|
+
|
|
60
|
+
## Messages this system consumes
|
|
61
|
+
|
|
62
|
+
The Search System reacts to product changes published by the Product Catalog System:
|
|
63
|
+
|
|
64
|
+
- [[event|product-created]] — index the new product.
|
|
65
|
+
- [[event|product-updated]] — re-index the changed product.
|
|
66
|
+
- [[event|product-deleted]] — remove the product from the index.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: search-api
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
name: Search API
|
|
5
|
+
summary: |
|
|
6
|
+
Public-facing API that serves fast, relevant product search to the rest of the business, reading from the search index.
|
|
7
|
+
styles:
|
|
8
|
+
icon: /icons/languages/nodejs.svg
|
|
9
|
+
owners:
|
|
10
|
+
- search-platform
|
|
11
|
+
receives:
|
|
12
|
+
- id: search-products
|
|
13
|
+
version: 1.0.0
|
|
14
|
+
readsFrom:
|
|
15
|
+
- id: search-index
|
|
16
|
+
repository:
|
|
17
|
+
language: TypeScript
|
|
18
|
+
url: 'https://github.com/acme/search-api'
|
|
19
|
+
specifications:
|
|
20
|
+
- type: openapi
|
|
21
|
+
path: openapi.yml
|
|
22
|
+
name: Search API
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
import Footer from '@catalog/components/footer.astro';
|
|
26
|
+
|
|
27
|
+
## Overview
|
|
28
|
+
|
|
29
|
+
The **Search API** is the front door to the Search System. It answers [[query|search-products]] queries by reading from the [[container|search-index]], which is kept current by the [[service|search-indexer]]. Other teams use this API so they never have to query the catalog database directly.
|
|
30
|
+
|
|
31
|
+
### Responsibilities
|
|
32
|
+
|
|
33
|
+
| Area | Description |
|
|
34
|
+
| ------ | ------------------------------------------------------------------------------------ |
|
|
35
|
+
| Search | Serves [[query\|search-products]] with full-text matching, filtering and pagination. |
|
|
36
|
+
| Reads | Queries the [[container\|search-index]] — never the catalog database. |
|
|
37
|
+
|
|
38
|
+
## Architecture diagram
|
|
39
|
+
|
|
40
|
+
<NodeGraph />
|
|
41
|
+
|
|
42
|
+
<MessageTable format="all" limit={4} />
|
|
43
|
+
|
|
44
|
+
<Footer />
|
package/templates/default/domains/Catalog/systems/search-system/services/SearchAPI/openapi.yml
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
openapi: 3.0.3
|
|
2
|
+
info:
|
|
3
|
+
title: Search API
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
description: |
|
|
6
|
+
Public-facing API for the Search System. Serves fast, relevant product
|
|
7
|
+
search by reading from the search index, which is kept in sync with the
|
|
8
|
+
product catalog.
|
|
9
|
+
contact:
|
|
10
|
+
name: Search Platform
|
|
11
|
+
email: search-platform@acme.test
|
|
12
|
+
servers:
|
|
13
|
+
- url: https://api.acme.test
|
|
14
|
+
description: Production
|
|
15
|
+
paths:
|
|
16
|
+
/search/products:
|
|
17
|
+
get:
|
|
18
|
+
operationId: searchProducts
|
|
19
|
+
summary: Search the catalog for products
|
|
20
|
+
description: |
|
|
21
|
+
Runs a full-text search over the product index and returns a paginated
|
|
22
|
+
list of matching products. Supports optional filters and pagination.
|
|
23
|
+
tags:
|
|
24
|
+
- Search
|
|
25
|
+
parameters:
|
|
26
|
+
- name: query
|
|
27
|
+
in: query
|
|
28
|
+
required: true
|
|
29
|
+
description: Free-text search term.
|
|
30
|
+
schema:
|
|
31
|
+
type: string
|
|
32
|
+
minLength: 1
|
|
33
|
+
example: wireless headphones
|
|
34
|
+
- name: category
|
|
35
|
+
in: query
|
|
36
|
+
required: false
|
|
37
|
+
description: Restrict results to a single category.
|
|
38
|
+
schema:
|
|
39
|
+
type: string
|
|
40
|
+
example: audio
|
|
41
|
+
- name: status
|
|
42
|
+
in: query
|
|
43
|
+
required: false
|
|
44
|
+
description: Restrict results to products with this lifecycle status.
|
|
45
|
+
schema:
|
|
46
|
+
type: string
|
|
47
|
+
enum: [DRAFT, ACTIVE, ARCHIVED]
|
|
48
|
+
- name: minPrice
|
|
49
|
+
in: query
|
|
50
|
+
required: false
|
|
51
|
+
description: Minimum price in minor units (e.g. cents).
|
|
52
|
+
schema:
|
|
53
|
+
type: integer
|
|
54
|
+
minimum: 0
|
|
55
|
+
- name: maxPrice
|
|
56
|
+
in: query
|
|
57
|
+
required: false
|
|
58
|
+
description: Maximum price in minor units (e.g. cents).
|
|
59
|
+
schema:
|
|
60
|
+
type: integer
|
|
61
|
+
minimum: 0
|
|
62
|
+
- name: page
|
|
63
|
+
in: query
|
|
64
|
+
required: false
|
|
65
|
+
description: 1-based page number.
|
|
66
|
+
schema:
|
|
67
|
+
type: integer
|
|
68
|
+
minimum: 1
|
|
69
|
+
default: 1
|
|
70
|
+
- name: pageSize
|
|
71
|
+
in: query
|
|
72
|
+
required: false
|
|
73
|
+
description: Number of results per page.
|
|
74
|
+
schema:
|
|
75
|
+
type: integer
|
|
76
|
+
minimum: 1
|
|
77
|
+
maximum: 100
|
|
78
|
+
default: 20
|
|
79
|
+
responses:
|
|
80
|
+
'200':
|
|
81
|
+
description: A paginated list of matching products.
|
|
82
|
+
content:
|
|
83
|
+
application/json:
|
|
84
|
+
schema:
|
|
85
|
+
$ref: '#/components/schemas/SearchResults'
|
|
86
|
+
'400':
|
|
87
|
+
description: The request was invalid (e.g. a missing or empty query).
|
|
88
|
+
content:
|
|
89
|
+
application/json:
|
|
90
|
+
schema:
|
|
91
|
+
$ref: '#/components/schemas/Error'
|
|
92
|
+
components:
|
|
93
|
+
schemas:
|
|
94
|
+
SearchResults:
|
|
95
|
+
type: object
|
|
96
|
+
required: [total, page, pageSize, results]
|
|
97
|
+
properties:
|
|
98
|
+
total:
|
|
99
|
+
type: integer
|
|
100
|
+
description: Total number of products matching the query.
|
|
101
|
+
page:
|
|
102
|
+
type: integer
|
|
103
|
+
pageSize:
|
|
104
|
+
type: integer
|
|
105
|
+
results:
|
|
106
|
+
type: array
|
|
107
|
+
items:
|
|
108
|
+
$ref: '#/components/schemas/ProductSearchResult'
|
|
109
|
+
ProductSearchResult:
|
|
110
|
+
type: object
|
|
111
|
+
required: [productId, sku, name]
|
|
112
|
+
properties:
|
|
113
|
+
productId:
|
|
114
|
+
type: string
|
|
115
|
+
format: uuid
|
|
116
|
+
sku:
|
|
117
|
+
type: string
|
|
118
|
+
name:
|
|
119
|
+
type: string
|
|
120
|
+
category:
|
|
121
|
+
type: string
|
|
122
|
+
price:
|
|
123
|
+
type: integer
|
|
124
|
+
description: Price in minor units (e.g. cents).
|
|
125
|
+
currency:
|
|
126
|
+
type: string
|
|
127
|
+
pattern: '^[A-Z]{3}$'
|
|
128
|
+
score:
|
|
129
|
+
type: number
|
|
130
|
+
description: Relevance score for this result.
|
|
131
|
+
Error:
|
|
132
|
+
type: object
|
|
133
|
+
required: [code, message]
|
|
134
|
+
properties:
|
|
135
|
+
code:
|
|
136
|
+
type: string
|
|
137
|
+
message:
|
|
138
|
+
type: string
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: search-products
|
|
3
|
+
name: Search Products
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
summary: |
|
|
6
|
+
Query to search the catalog for products matching a term, with optional filters and pagination.
|
|
7
|
+
owners:
|
|
8
|
+
- search-platform
|
|
9
|
+
schemaPath: schema.json
|
|
10
|
+
operation:
|
|
11
|
+
method: GET
|
|
12
|
+
path: /search/products
|
|
13
|
+
statusCodes: ['200', '400']
|
|
14
|
+
sidebar:
|
|
15
|
+
badge: 'GET'
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
import Footer from '@catalog/components/footer.astro';
|
|
19
|
+
|
|
20
|
+
## Overview
|
|
21
|
+
|
|
22
|
+
`SearchProducts` is handled by the [[service|search-api]]. It runs a full-text search over the [[container|search-index]] and returns a paginated list of matching products. Use this whenever you need to find products across the catalog, rather than fetching a single product by id with [[query|get-product]].
|
|
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,108 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "SearchProducts",
|
|
4
|
+
"description": "Query to search the catalog for products, and the paginated result returned",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"request": {
|
|
8
|
+
"description": "Search parameters",
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"query": {
|
|
12
|
+
"description": "Free-text search term",
|
|
13
|
+
"type": "string",
|
|
14
|
+
"minLength": 1
|
|
15
|
+
},
|
|
16
|
+
"filters": {
|
|
17
|
+
"description": "Optional filters applied to the search",
|
|
18
|
+
"type": "object",
|
|
19
|
+
"properties": {
|
|
20
|
+
"category": {
|
|
21
|
+
"type": "string"
|
|
22
|
+
},
|
|
23
|
+
"status": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"enum": ["DRAFT", "ACTIVE", "ARCHIVED"]
|
|
26
|
+
},
|
|
27
|
+
"minPrice": {
|
|
28
|
+
"description": "Minimum price in minor units (e.g. cents)",
|
|
29
|
+
"type": "integer",
|
|
30
|
+
"minimum": 0
|
|
31
|
+
},
|
|
32
|
+
"maxPrice": {
|
|
33
|
+
"description": "Maximum price in minor units (e.g. cents)",
|
|
34
|
+
"type": "integer",
|
|
35
|
+
"minimum": 0
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"page": {
|
|
40
|
+
"description": "1-based page number",
|
|
41
|
+
"type": "integer",
|
|
42
|
+
"minimum": 1,
|
|
43
|
+
"default": 1
|
|
44
|
+
},
|
|
45
|
+
"pageSize": {
|
|
46
|
+
"description": "Number of results per page",
|
|
47
|
+
"type": "integer",
|
|
48
|
+
"minimum": 1,
|
|
49
|
+
"maximum": 100,
|
|
50
|
+
"default": 20
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"required": ["query"]
|
|
54
|
+
},
|
|
55
|
+
"response": {
|
|
56
|
+
"description": "Paginated search results",
|
|
57
|
+
"type": "object",
|
|
58
|
+
"properties": {
|
|
59
|
+
"total": {
|
|
60
|
+
"description": "Total number of products matching the query",
|
|
61
|
+
"type": "integer"
|
|
62
|
+
},
|
|
63
|
+
"page": {
|
|
64
|
+
"type": "integer"
|
|
65
|
+
},
|
|
66
|
+
"pageSize": {
|
|
67
|
+
"type": "integer"
|
|
68
|
+
},
|
|
69
|
+
"results": {
|
|
70
|
+
"type": "array",
|
|
71
|
+
"items": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"properties": {
|
|
74
|
+
"productId": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"format": "uuid"
|
|
77
|
+
},
|
|
78
|
+
"sku": {
|
|
79
|
+
"type": "string"
|
|
80
|
+
},
|
|
81
|
+
"name": {
|
|
82
|
+
"type": "string"
|
|
83
|
+
},
|
|
84
|
+
"category": {
|
|
85
|
+
"type": "string"
|
|
86
|
+
},
|
|
87
|
+
"price": {
|
|
88
|
+
"description": "Price in minor units (e.g. cents)",
|
|
89
|
+
"type": "integer"
|
|
90
|
+
},
|
|
91
|
+
"currency": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"pattern": "^[A-Z]{3}$"
|
|
94
|
+
},
|
|
95
|
+
"score": {
|
|
96
|
+
"description": "Relevance score for this result",
|
|
97
|
+
"type": "number"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"required": ["productId", "sku", "name"]
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"required": ["total", "page", "pageSize", "results"]
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"required": ["request", "response"]
|
|
108
|
+
}
|
package/templates/default/domains/Catalog/systems/search-system/services/SearchIndexer/index.mdx
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: search-indexer
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
name: Search Indexer
|
|
5
|
+
summary: |
|
|
6
|
+
Consumes product change events from the Product Catalog System and keeps the search index up to date so products are discoverable.
|
|
7
|
+
styles:
|
|
8
|
+
icon: /icons/languages/go.svg
|
|
9
|
+
owners:
|
|
10
|
+
- search-platform
|
|
11
|
+
receives:
|
|
12
|
+
- id: product-created
|
|
13
|
+
version: 1.0.0
|
|
14
|
+
- id: product-updated
|
|
15
|
+
version: 1.0.0
|
|
16
|
+
- id: product-deleted
|
|
17
|
+
version: 1.0.0
|
|
18
|
+
writesTo:
|
|
19
|
+
- id: search-index
|
|
20
|
+
repository:
|
|
21
|
+
language: Go
|
|
22
|
+
url: 'https://github.com/acme/search-indexer'
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
import Footer from '@catalog/components/footer.astro';
|
|
26
|
+
|
|
27
|
+
## Overview
|
|
28
|
+
|
|
29
|
+
The **Search Indexer** is how the Search System stays in sync with the catalog. It subscribes to [[event|product-created]], [[event|product-updated]] and [[event|product-deleted]] events published by the [[system|product-catalog-system]] and applies each change to the [[container|search-index]].
|
|
30
|
+
|
|
31
|
+
<Tiles>
|
|
32
|
+
<Tile
|
|
33
|
+
icon="BoltIcon"
|
|
34
|
+
href={`/visualiser/services/${frontmatter.id}/${frontmatter.version}`}
|
|
35
|
+
title={`Receives ${frontmatter.receives.length} messages`}
|
|
36
|
+
description="Product change events consumed from the catalog"
|
|
37
|
+
/>
|
|
38
|
+
</Tiles>
|
|
39
|
+
|
|
40
|
+
### Responsibilities
|
|
41
|
+
|
|
42
|
+
| Event | Action |
|
|
43
|
+
| -------------------------- | ------------------------------------------------------- |
|
|
44
|
+
| [[event\|product-created]] | Add the new product to the [[container\|search-index]]. |
|
|
45
|
+
| [[event\|product-updated]] | Re-index the changed product. |
|
|
46
|
+
| [[event\|product-deleted]] | Remove the product from the index. |
|
|
47
|
+
|
|
48
|
+
## Architecture diagram
|
|
49
|
+
|
|
50
|
+
<NodeGraph />
|
|
51
|
+
|
|
52
|
+
<MessageTable format="all" limit={4} />
|
|
53
|
+
|
|
54
|
+
<Footer />
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
dictionary:
|
|
3
|
+
- id: Product
|
|
4
|
+
name: Product
|
|
5
|
+
summary: 'A single item Acme Inc sells, with a name, price, category and lifecycle status.'
|
|
6
|
+
description: |
|
|
7
|
+
A product is the central concept of the Catalog domain. It is owned and maintained by the
|
|
8
|
+
Product Catalog System, which is the source of truth for all product data. A product carries:
|
|
9
|
+
|
|
10
|
+
- A unique product id and a unique SKU
|
|
11
|
+
- Display name, description and category
|
|
12
|
+
- Price (in minor units) and currency
|
|
13
|
+
- A lifecycle status (DRAFT, ACTIVE or ARCHIVED)
|
|
14
|
+
|
|
15
|
+
Every change to a product publishes a domain event so the rest of the business — including
|
|
16
|
+
search — can react.
|
|
17
|
+
icon: Package
|
|
18
|
+
- id: SKU
|
|
19
|
+
name: SKU
|
|
20
|
+
summary: 'Stock Keeping Unit — the unique, human-meaningful code that identifies a product.'
|
|
21
|
+
description: |
|
|
22
|
+
A SKU uniquely identifies a product in the catalog and must be unique across all products.
|
|
23
|
+
Unlike the internal product id (a UUID), the SKU is the code teams and merchants use day to day.
|
|
24
|
+
icon: Tag
|
|
25
|
+
- id: Catalog
|
|
26
|
+
name: Catalog
|
|
27
|
+
summary: 'The complete, authoritative collection of products Acme Inc offers.'
|
|
28
|
+
icon: BookOpen
|
|
29
|
+
- id: Search Index
|
|
30
|
+
name: Search Index
|
|
31
|
+
summary: 'A denormalised, search-optimised copy of the catalog that powers product search.'
|
|
32
|
+
description: |
|
|
33
|
+
The search index is a derived read model, not a source of truth. It is kept in sync by the
|
|
34
|
+
Search System consuming product change events, and can be rebuilt at any time by replaying
|
|
35
|
+
those events. It exists to serve fast, relevant search without coupling consumers to the
|
|
36
|
+
catalog database.
|
|
37
|
+
icon: Search
|
|
38
|
+
- id: Lifecycle Status
|
|
39
|
+
name: Lifecycle Status
|
|
40
|
+
summary: 'Where a product sits in its life: DRAFT, ACTIVE or ARCHIVED.'
|
|
41
|
+
description: |
|
|
42
|
+
- DRAFT — being prepared, not yet visible to customers.
|
|
43
|
+
- ACTIVE — live and discoverable.
|
|
44
|
+
- ARCHIVED — withdrawn from sale but retained for history.
|
|
45
|
+
icon: Workflow
|
|
46
|
+
- id: Outbox
|
|
47
|
+
name: Outbox
|
|
48
|
+
summary: 'A table where product changes are recorded in the same transaction, then published as events.'
|
|
49
|
+
description: |
|
|
50
|
+
The outbox is how the Product Catalog System guarantees that a product change and its event
|
|
51
|
+
are never out of sync. The Product API writes the change and an outbox row in one transaction;
|
|
52
|
+
the Product Search Publisher reliably drains the outbox to the broker.
|
|
53
|
+
icon: Mail
|
|
54
|
+
---
|