@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.
Files changed (466) hide show
  1. package/dist/index.js +8 -4
  2. package/package.json +1 -1
  3. package/templates/amazon-api-gateway/README-template.md +45 -18
  4. package/templates/asyncapi/README-template.md +39 -31
  5. package/templates/confluent/README-template.md +45 -18
  6. package/templates/default/README-template.md +40 -31
  7. package/templates/default/_data/visualizer-layouts/domains-systems-context/catalog/1.0.0.json +31 -0
  8. package/templates/default/_data/visualizer-layouts/domains-systems-context/customer/1.0.0.json +23 -0
  9. package/templates/default/_data/visualizer-layouts/system-context-map/system-context-map/1.0.0.json +91 -0
  10. package/templates/default/_data/visualizer-layouts/systems-context/customer-management-system/1.0.0.json +23 -0
  11. package/templates/default/components/footer.astro +0 -1
  12. package/templates/default/domains/Catalog/entities/category/index.mdx +36 -0
  13. package/templates/default/domains/Catalog/entities/product/index.mdx +37 -0
  14. package/templates/default/domains/Catalog/entities/product-variant/index.mdx +35 -0
  15. package/templates/default/domains/Catalog/entities/search-document/index.mdx +35 -0
  16. package/templates/default/domains/Catalog/index.mdx +65 -0
  17. package/templates/default/domains/Catalog/systems/product-catalog-system/adrs/adr-001-use-transactional-outbox/index.mdx +43 -0
  18. package/templates/default/domains/Catalog/systems/product-catalog-system/adrs/adr-002-postgres-as-system-of-record/index.mdx +40 -0
  19. package/templates/default/domains/Catalog/systems/product-catalog-system/adrs/adr-003-offload-async-work-to-worker/index.mdx +41 -0
  20. package/templates/default/domains/Catalog/systems/product-catalog-system/containers/product-database/index.mdx +45 -0
  21. package/templates/default/domains/Catalog/systems/product-catalog-system/containers/product-database/schema.sql +33 -0
  22. package/templates/default/domains/Catalog/systems/product-catalog-system/index.mdx +72 -0
  23. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/commands/CreateProduct/index.mdx +32 -0
  24. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/commands/CreateProduct/schema.json +41 -0
  25. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/commands/DeleteProduct/index.mdx +32 -0
  26. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/commands/DeleteProduct/schema.json +19 -0
  27. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/commands/UpdateProduct/index.mdx +32 -0
  28. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/commands/UpdateProduct/schema.json +42 -0
  29. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/events/ProductCreated/index.mdx +29 -0
  30. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/events/ProductCreated/schema.json +62 -0
  31. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/events/ProductDeleted/index.mdx +29 -0
  32. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/events/ProductDeleted/schema.json +29 -0
  33. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/events/ProductUpdated/index.mdx +29 -0
  34. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/events/ProductUpdated/schema.json +55 -0
  35. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/index.mdx +69 -0
  36. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/openapi.yml +219 -0
  37. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/queries/GetProduct/index.mdx +32 -0
  38. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductAPI/queries/GetProduct/schema.json +56 -0
  39. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductSearchPublisher/index.mdx +56 -0
  40. package/templates/default/domains/Catalog/systems/product-catalog-system/services/ProductWorker/index.mdx +48 -0
  41. package/templates/default/domains/Catalog/systems/search-system/containers/search-index/index.mdx +39 -0
  42. package/templates/default/domains/Catalog/systems/search-system/flows/ProductSearchIndexing/index.mdx +130 -0
  43. package/templates/default/domains/Catalog/systems/search-system/index.mdx +66 -0
  44. package/templates/default/domains/Catalog/systems/search-system/services/SearchAPI/index.mdx +44 -0
  45. package/templates/default/domains/Catalog/systems/search-system/services/SearchAPI/openapi.yml +138 -0
  46. package/templates/default/domains/Catalog/systems/search-system/services/SearchAPI/queries/SearchProducts/index.mdx +32 -0
  47. package/templates/default/domains/Catalog/systems/search-system/services/SearchAPI/queries/SearchProducts/schema.json +108 -0
  48. package/templates/default/domains/Catalog/systems/search-system/services/SearchIndexer/index.mdx +54 -0
  49. package/templates/default/domains/Catalog/ubiquitous-language.mdx +54 -0
  50. package/templates/default/domains/Customer/entities/authentication-session/index.mdx +35 -0
  51. package/templates/default/domains/Customer/entities/customer-account/index.mdx +36 -0
  52. package/templates/default/domains/Customer/entities/customer-address/index.mdx +35 -0
  53. package/templates/default/domains/Customer/entities/customer-profile/index.mdx +33 -0
  54. package/templates/default/domains/Customer/index.mdx +67 -0
  55. package/templates/default/domains/Customer/systems/customer-management-system/containers/customer-database/index.mdx +43 -0
  56. package/templates/default/domains/Customer/systems/customer-management-system/containers/customer-database/schema.sql +14 -0
  57. package/templates/default/domains/Customer/systems/customer-management-system/index.mdx +60 -0
  58. package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/commands/RegisterCustomer/index.mdx +32 -0
  59. package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/commands/RegisterCustomer/schema.json +24 -0
  60. package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/commands/UpdateCustomer/index.mdx +32 -0
  61. package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/commands/UpdateCustomer/schema.json +29 -0
  62. package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/events/CustomerRegistered/index.mdx +29 -0
  63. package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/events/CustomerRegistered/schema.json +45 -0
  64. package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/events/CustomerUpdated/index.mdx +29 -0
  65. package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/events/CustomerUpdated/schema.json +42 -0
  66. package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/index.mdx +72 -0
  67. package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/openapi.yml +164 -0
  68. package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/queries/GetCustomer/index.mdx +32 -0
  69. package/templates/default/domains/Customer/systems/customer-management-system/services/CustomerAPI/queries/GetCustomer/schema.json +47 -0
  70. package/templates/default/domains/Customer/systems/identity-provider/containers/user-directory/index.mdx +36 -0
  71. package/templates/default/domains/Customer/systems/identity-provider/index.mdx +54 -0
  72. package/templates/default/domains/Customer/systems/identity-provider/services/OAuthAPI/commands/AuthenticateCustomer/index.mdx +32 -0
  73. package/templates/default/domains/Customer/systems/identity-provider/services/OAuthAPI/commands/AuthenticateCustomer/schema.json +41 -0
  74. package/templates/default/domains/Customer/systems/identity-provider/services/OAuthAPI/events/CustomerAuthenticated/index.mdx +29 -0
  75. package/templates/default/domains/Customer/systems/identity-provider/services/OAuthAPI/events/CustomerAuthenticated/schema.json +33 -0
  76. package/templates/default/domains/Customer/systems/identity-provider/services/OAuthAPI/index.mdx +59 -0
  77. package/templates/default/domains/Customer/ubiquitous-language.mdx +48 -0
  78. package/templates/default/domains/Fulfilment/entities/inventory-reservation/index.mdx +39 -0
  79. package/templates/default/domains/Fulfilment/entities/shipment/index.mdx +36 -0
  80. package/templates/default/domains/Fulfilment/entities/stock-item/index.mdx +36 -0
  81. package/templates/default/domains/Fulfilment/entities/warehouse-pick/index.mdx +35 -0
  82. package/templates/default/domains/Fulfilment/index.mdx +83 -0
  83. package/templates/default/domains/Fulfilment/systems/carrier/index.mdx +52 -0
  84. package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierShippingAPI/index.mdx +40 -0
  85. package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierTrackingAPI/events/ShipmentCreated/index.mdx +29 -0
  86. package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierTrackingAPI/events/ShipmentCreated/schema.json +15 -0
  87. package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierTrackingAPI/events/ShipmentDelivered/index.mdx +29 -0
  88. package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierTrackingAPI/events/ShipmentDelivered/schema.json +13 -0
  89. package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierTrackingAPI/events/ShipmentFailed/index.mdx +29 -0
  90. package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierTrackingAPI/events/ShipmentFailed/schema.json +16 -0
  91. package/templates/default/domains/Fulfilment/systems/carrier/services/CarrierTrackingAPI/index.mdx +44 -0
  92. package/templates/default/domains/Fulfilment/systems/inventory-system/containers/inventory-database/index.mdx +35 -0
  93. package/templates/default/domains/Fulfilment/systems/inventory-system/containers/inventory-database/schema.sql +26 -0
  94. package/templates/default/domains/Fulfilment/systems/inventory-system/index.mdx +49 -0
  95. package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/commands/ReleaseInventory/index.mdx +32 -0
  96. package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/commands/ReleaseInventory/schema.json +14 -0
  97. package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/events/InventoryReserved/index.mdx +29 -0
  98. package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/events/InventoryReserved/schema.json +24 -0
  99. package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/events/InventoryUnavailable/index.mdx +29 -0
  100. package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/events/InventoryUnavailable/schema.json +24 -0
  101. package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/index.mdx +67 -0
  102. package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/queries/GetStockLevel/index.mdx +32 -0
  103. package/templates/default/domains/Fulfilment/systems/inventory-system/services/InventoryService/queries/GetStockLevel/schema.json +25 -0
  104. package/templates/default/domains/Fulfilment/systems/shipping-system/index.mdx +47 -0
  105. package/templates/default/domains/Fulfilment/systems/shipping-system/services/CarrierAdapter/commands/CreateShipment/index.mdx +32 -0
  106. package/templates/default/domains/Fulfilment/systems/shipping-system/services/CarrierAdapter/commands/CreateShipment/schema.json +26 -0
  107. package/templates/default/domains/Fulfilment/systems/shipping-system/services/CarrierAdapter/index.mdx +40 -0
  108. package/templates/default/domains/Fulfilment/systems/shipping-system/services/ShippingAPI/index.mdx +40 -0
  109. package/templates/default/domains/Fulfilment/systems/warehouse-system/containers/warehouse-database/index.mdx +35 -0
  110. package/templates/default/domains/Fulfilment/systems/warehouse-system/containers/warehouse-database/schema.sql +21 -0
  111. package/templates/default/domains/Fulfilment/systems/warehouse-system/index.mdx +53 -0
  112. package/templates/default/domains/Fulfilment/systems/warehouse-system/services/PickingWorker/events/OrderPacked/index.mdx +29 -0
  113. package/templates/default/domains/Fulfilment/systems/warehouse-system/services/PickingWorker/events/OrderPacked/schema.json +13 -0
  114. package/templates/default/domains/Fulfilment/systems/warehouse-system/services/PickingWorker/index.mdx +44 -0
  115. package/templates/default/domains/Fulfilment/systems/warehouse-system/services/WarehouseService/events/OrderReadyForShipping/index.mdx +29 -0
  116. package/templates/default/domains/Fulfilment/systems/warehouse-system/services/WarehouseService/events/OrderReadyForShipping/schema.json +23 -0
  117. package/templates/default/domains/Fulfilment/systems/warehouse-system/services/WarehouseService/index.mdx +53 -0
  118. package/templates/default/domains/Fulfilment/ubiquitous-language.mdx +44 -0
  119. package/templates/default/domains/Ordering/entities/checkout-session/index.mdx +36 -0
  120. package/templates/default/domains/Ordering/entities/order/index.mdx +36 -0
  121. package/templates/default/domains/Ordering/entities/order-line/index.mdx +38 -0
  122. package/templates/default/domains/Ordering/entities/order-status-history/index.mdx +35 -0
  123. package/templates/default/domains/Ordering/flows/PlaceAnOrder/index.mdx +158 -0
  124. package/templates/default/domains/Ordering/index.mdx +70 -0
  125. package/templates/default/domains/Ordering/systems/checkout-system/flows/CheckoutSaga/index.mdx +101 -0
  126. package/templates/default/domains/Ordering/systems/checkout-system/index.mdx +57 -0
  127. package/templates/default/domains/Ordering/systems/checkout-system/services/CheckoutAPI/index.mdx +53 -0
  128. package/templates/default/domains/Ordering/systems/checkout-system/services/CheckoutOrchestrator/commands/AuthorizePayment/index.mdx +32 -0
  129. package/templates/default/domains/Ordering/systems/checkout-system/services/CheckoutOrchestrator/commands/AuthorizePayment/schema.json +29 -0
  130. package/templates/default/domains/Ordering/systems/checkout-system/services/CheckoutOrchestrator/commands/ReserveInventory/index.mdx +32 -0
  131. package/templates/default/domains/Ordering/systems/checkout-system/services/CheckoutOrchestrator/commands/ReserveInventory/schema.json +37 -0
  132. package/templates/default/domains/Ordering/systems/checkout-system/services/CheckoutOrchestrator/index.mdx +59 -0
  133. package/templates/default/domains/Ordering/systems/order-management-system/containers/order-database/index.mdx +39 -0
  134. package/templates/default/domains/Ordering/systems/order-management-system/containers/order-database/schema.sql +24 -0
  135. package/templates/default/domains/Ordering/systems/order-management-system/flows/OrderCancellation/index.mdx +105 -0
  136. package/templates/default/domains/Ordering/systems/order-management-system/index.mdx +53 -0
  137. package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/asyncapi.yml +233 -0
  138. package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/commands/CancelOrder/index.mdx +32 -0
  139. package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/commands/CancelOrder/schema.json +19 -0
  140. package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/commands/CreateOrder/index.mdx +32 -0
  141. package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/commands/CreateOrder/schema.json +55 -0
  142. package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/events/OrderCancelled/index.mdx +29 -0
  143. package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/events/OrderCancelled/schema.json +25 -0
  144. package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/events/OrderCompleted/index.mdx +29 -0
  145. package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/events/OrderCompleted/schema.json +21 -0
  146. package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/events/OrderCreated/index.mdx +29 -0
  147. package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/events/OrderCreated/schema.json +29 -0
  148. package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/index.mdx +74 -0
  149. package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/queries/GetOrder/index.mdx +32 -0
  150. package/templates/default/domains/Ordering/systems/order-management-system/services/OrderService/queries/GetOrder/schema.json +64 -0
  151. package/templates/default/domains/Ordering/ubiquitous-language.mdx +53 -0
  152. package/templates/default/domains/Payments/entities/fraud-check/index.mdx +39 -0
  153. package/templates/default/domains/Payments/entities/payment/index.mdx +36 -0
  154. package/templates/default/domains/Payments/entities/payment-authorization/index.mdx +35 -0
  155. package/templates/default/domains/Payments/entities/refund/index.mdx +36 -0
  156. package/templates/default/domains/Payments/index.mdx +69 -0
  157. package/templates/default/domains/Payments/systems/fraud-detection/index.mdx +49 -0
  158. package/templates/default/domains/Payments/systems/fraud-detection/services/FraudAPI/events/FraudCheckFailed/index.mdx +29 -0
  159. package/templates/default/domains/Payments/systems/fraud-detection/services/FraudAPI/events/FraudCheckFailed/schema.json +22 -0
  160. package/templates/default/domains/Payments/systems/fraud-detection/services/FraudAPI/events/FraudCheckPassed/index.mdx +29 -0
  161. package/templates/default/domains/Payments/systems/fraud-detection/services/FraudAPI/events/FraudCheckPassed/schema.json +18 -0
  162. package/templates/default/domains/Payments/systems/fraud-detection/services/FraudAPI/index.mdx +51 -0
  163. package/templates/default/domains/Payments/systems/payment-processing-system/containers/payment-database/index.mdx +39 -0
  164. package/templates/default/domains/Payments/systems/payment-processing-system/containers/payment-database/schema.sql +25 -0
  165. package/templates/default/domains/Payments/systems/payment-processing-system/index.mdx +53 -0
  166. package/templates/default/domains/Payments/systems/payment-processing-system/services/PaymentAPI/index.mdx +51 -0
  167. package/templates/default/domains/Payments/systems/payment-processing-system/services/PaymentWorker/events/PaymentRequested/index.mdx +29 -0
  168. package/templates/default/domains/Payments/systems/payment-processing-system/services/PaymentWorker/events/PaymentRequested/schema.json +19 -0
  169. package/templates/default/domains/Payments/systems/payment-processing-system/services/PaymentWorker/events/RefundRequested/index.mdx +29 -0
  170. package/templates/default/domains/Payments/systems/payment-processing-system/services/PaymentWorker/events/RefundRequested/schema.json +20 -0
  171. package/templates/default/domains/Payments/systems/payment-processing-system/services/PaymentWorker/index.mdx +66 -0
  172. package/templates/default/domains/Payments/systems/stripe/index.mdx +52 -0
  173. package/templates/default/domains/Payments/systems/stripe/services/StripePaymentsAPI/index.mdx +42 -0
  174. package/templates/default/domains/Payments/systems/stripe/services/StripeWebhookEndpoint/events/PaymentFailed/index.mdx +29 -0
  175. package/templates/default/domains/Payments/systems/stripe/services/StripeWebhookEndpoint/events/PaymentFailed/schema.json +16 -0
  176. package/templates/default/domains/Payments/systems/stripe/services/StripeWebhookEndpoint/events/PaymentSucceeded/index.mdx +29 -0
  177. package/templates/default/domains/Payments/systems/stripe/services/StripeWebhookEndpoint/events/PaymentSucceeded/schema.json +15 -0
  178. package/templates/default/domains/Payments/systems/stripe/services/StripeWebhookEndpoint/events/RefundProcessed/index.mdx +29 -0
  179. package/templates/default/domains/Payments/systems/stripe/services/StripeWebhookEndpoint/events/RefundProcessed/schema.json +14 -0
  180. package/templates/default/domains/Payments/systems/stripe/services/StripeWebhookEndpoint/index.mdx +44 -0
  181. package/templates/default/domains/Payments/ubiquitous-language.mdx +41 -0
  182. package/templates/default/domains/Reviews/asyncapi.yml +181 -0
  183. package/templates/default/domains/Reviews/containers/rating-cache/index.mdx +29 -0
  184. package/templates/default/domains/Reviews/containers/review-database/index.mdx +33 -0
  185. package/templates/default/domains/Reviews/entities/moderation-decision/index.mdx +38 -0
  186. package/templates/default/domains/Reviews/entities/rating-summary/index.mdx +35 -0
  187. package/templates/default/domains/Reviews/entities/review/index.mdx +63 -0
  188. package/templates/default/domains/Reviews/entities/review-flag/index.mdx +35 -0
  189. package/templates/default/domains/Reviews/entities/review-vote/index.mdx +38 -0
  190. package/templates/default/domains/Reviews/flows/review-submission/index.mdx +120 -0
  191. package/templates/default/domains/Reviews/index.mdx +93 -0
  192. package/templates/default/domains/Reviews/openapi.yml +209 -0
  193. package/templates/default/domains/Reviews/services/RatingAggregator/events/rating-updated/index.mdx +29 -0
  194. package/templates/default/domains/Reviews/services/RatingAggregator/events/rating-updated/schema.json +12 -0
  195. package/templates/default/domains/Reviews/services/RatingAggregator/index.mdx +47 -0
  196. package/templates/default/domains/Reviews/services/ReviewAPI/commands/flag-review/index.mdx +29 -0
  197. package/templates/default/domains/Reviews/services/ReviewAPI/commands/flag-review/schema.json +13 -0
  198. package/templates/default/domains/Reviews/services/ReviewAPI/commands/submit-review/index.mdx +29 -0
  199. package/templates/default/domains/Reviews/services/ReviewAPI/commands/submit-review/schema.json +15 -0
  200. package/templates/default/domains/Reviews/services/ReviewAPI/commands/vote-review-helpful/index.mdx +29 -0
  201. package/templates/default/domains/Reviews/services/ReviewAPI/commands/vote-review-helpful/schema.json +12 -0
  202. package/templates/default/domains/Reviews/services/ReviewAPI/events/review-flagged/index.mdx +29 -0
  203. package/templates/default/domains/Reviews/services/ReviewAPI/events/review-flagged/schema.json +13 -0
  204. package/templates/default/domains/Reviews/services/ReviewAPI/events/review-helpful-voted/index.mdx +29 -0
  205. package/templates/default/domains/Reviews/services/ReviewAPI/events/review-helpful-voted/schema.json +12 -0
  206. package/templates/default/domains/Reviews/services/ReviewAPI/events/review-submitted/index.mdx +29 -0
  207. package/templates/default/domains/Reviews/services/ReviewAPI/events/review-submitted/schema.json +15 -0
  208. package/templates/default/domains/Reviews/services/ReviewAPI/index.mdx +58 -0
  209. package/templates/default/domains/Reviews/services/ReviewAPI/queries/get-product-reviews/index.mdx +24 -0
  210. package/templates/default/domains/Reviews/services/ReviewAPI/queries/get-product-reviews/schema.json +12 -0
  211. package/templates/default/domains/Reviews/services/ReviewModerationWorker/events/review-published/index.mdx +29 -0
  212. package/templates/default/domains/Reviews/services/ReviewModerationWorker/events/review-published/schema.json +13 -0
  213. package/templates/default/domains/Reviews/services/ReviewModerationWorker/events/review-rejected/index.mdx +29 -0
  214. package/templates/default/domains/Reviews/services/ReviewModerationWorker/events/review-rejected/schema.json +12 -0
  215. package/templates/default/domains/Reviews/services/ReviewModerationWorker/index.mdx +50 -0
  216. package/templates/default/domains/Shopping/entities/cart/index.mdx +40 -0
  217. package/templates/default/domains/Shopping/entities/cart-item/index.mdx +38 -0
  218. package/templates/default/domains/Shopping/entities/discount/index.mdx +35 -0
  219. package/templates/default/domains/Shopping/entities/promotion/index.mdx +40 -0
  220. package/templates/default/domains/Shopping/index.mdx +67 -0
  221. package/templates/default/domains/Shopping/systems/cart-system/containers/cart-database/index.mdx +39 -0
  222. package/templates/default/domains/Shopping/systems/cart-system/containers/cart-database/schema.sql +22 -0
  223. package/templates/default/domains/Shopping/systems/cart-system/index.mdx +53 -0
  224. package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/commands/AddItemToCart/index.mdx +32 -0
  225. package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/commands/AddItemToCart/schema.json +25 -0
  226. package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/commands/CheckoutCart/index.mdx +32 -0
  227. package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/commands/CheckoutCart/schema.json +23 -0
  228. package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/commands/RemoveItemFromCart/index.mdx +32 -0
  229. package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/commands/RemoveItemFromCart/schema.json +24 -0
  230. package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/events/CartCheckedOut/index.mdx +29 -0
  231. package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/events/CartCheckedOut/schema.json +62 -0
  232. package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/index.mdx +72 -0
  233. package/templates/default/domains/Shopping/systems/cart-system/services/CartAPI/openapi.yml +200 -0
  234. package/templates/default/domains/Shopping/systems/promotion-system/containers/promotion-database/index.mdx +40 -0
  235. package/templates/default/domains/Shopping/systems/promotion-system/containers/promotion-database/schema.sql +21 -0
  236. package/templates/default/domains/Shopping/systems/promotion-system/index.mdx +48 -0
  237. package/templates/default/domains/Shopping/systems/promotion-system/services/PromotionService/commands/CalculateDiscount/index.mdx +32 -0
  238. package/templates/default/domains/Shopping/systems/promotion-system/services/PromotionService/commands/CalculateDiscount/schema.json +53 -0
  239. package/templates/default/domains/Shopping/systems/promotion-system/services/PromotionService/events/DiscountCalculated/index.mdx +29 -0
  240. package/templates/default/domains/Shopping/systems/promotion-system/services/PromotionService/events/DiscountCalculated/schema.json +37 -0
  241. package/templates/default/domains/Shopping/systems/promotion-system/services/PromotionService/index.mdx +59 -0
  242. package/templates/default/domains/Shopping/ubiquitous-language.mdx +48 -0
  243. package/templates/default/eventcatalog.config.js +13 -0
  244. package/templates/default/pages/homepage.astro +109 -0
  245. package/templates/default/public/icons/analytics/clickhouse.svg +1 -0
  246. package/templates/default/public/icons/cache/redis.svg +1 -0
  247. package/templates/default/public/icons/database/postgresql.svg +1 -0
  248. package/templates/default/public/icons/languages/go.svg +1 -0
  249. package/templates/default/public/icons/languages/java.svg +1 -0
  250. package/templates/default/public/icons/languages/nodejs.svg +1 -0
  251. package/templates/default/public/icons/payments/stripe.svg +1 -0
  252. package/templates/default/teams/customer-platform.mdx +18 -0
  253. package/templates/default/teams/fulfilment-platform.mdx +20 -0
  254. package/templates/default/teams/ordering-platform.mdx +18 -0
  255. package/templates/default/teams/payments-platform.mdx +18 -0
  256. package/templates/default/teams/product-platform.mdx +20 -0
  257. package/templates/default/teams/reviews-platform.mdx +20 -0
  258. package/templates/default/teams/search-platform.mdx +19 -0
  259. package/templates/default/teams/shopping-platform.mdx +18 -0
  260. package/templates/default/users/dboyne.mdx +1 -1
  261. package/templates/empty/README-template.md +39 -31
  262. package/templates/eventbridge/README-template.md +44 -17
  263. package/templates/graphql/README-template.md +39 -31
  264. package/templates/index.ts +1 -0
  265. package/templates/openapi/README-template.md +37 -33
  266. package/templates/default/channels/inventory.{env}.events/index.mdx +0 -159
  267. package/templates/default/channels/orders.{env}.events/index.mdx +0 -85
  268. package/templates/default/channels/payment.{env}.events/index.mdx +0 -89
  269. package/templates/default/domains/E-Commerce/index.mdx +0 -140
  270. package/templates/default/domains/E-Commerce/ubiquitous-language.mdx +0 -87
  271. package/templates/default/domains/Orders/changelog.mdx +0 -7
  272. package/templates/default/domains/Orders/entities/CartItem/index.mdx +0 -124
  273. package/templates/default/domains/Orders/entities/Customer/index.mdx +0 -59
  274. package/templates/default/domains/Orders/entities/Order/index.mdx +0 -98
  275. package/templates/default/domains/Orders/entities/OrderItem/index.mdx +0 -62
  276. package/templates/default/domains/Orders/entities/ShoppingCart/index.mdx +0 -151
  277. package/templates/default/domains/Orders/index.mdx +0 -117
  278. package/templates/default/domains/Orders/services/InventoryService/changelog.mdx +0 -7
  279. package/templates/default/domains/Orders/services/InventoryService/channels/inventory-dlq/index.mdx +0 -13
  280. package/templates/default/domains/Orders/services/InventoryService/channels/inventory-queue/index.mdx +0 -13
  281. package/templates/default/domains/Orders/services/InventoryService/commands/AddInventory/index.mdx +0 -45
  282. package/templates/default/domains/Orders/services/InventoryService/commands/AddInventory/schema.json +0 -28
  283. package/templates/default/domains/Orders/services/InventoryService/commands/PlaceOrder/index.mdx +0 -34
  284. package/templates/default/domains/Orders/services/InventoryService/commands/PlaceOrder/schema.json +0 -124
  285. package/templates/default/domains/Orders/services/InventoryService/commands/UpdateInventory/index.mdx +0 -47
  286. package/templates/default/domains/Orders/services/InventoryService/commands/UpdateInventory/schema.json +0 -28
  287. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/changelog.mdx +0 -67
  288. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/examples/examples.config.yaml +0 -15
  289. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/examples/stock-decrease.json +0 -23
  290. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/examples/stock-increase.json +0 -23
  291. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/index.mdx +0 -124
  292. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/schema.avro +0 -13
  293. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/schema.json +0 -35
  294. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/0.0.1/changelog.mdx +0 -26
  295. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/0.0.1/index.mdx +0 -23
  296. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/0.0.1/schema.avro +0 -9
  297. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/0.0.1/schema.json +0 -36
  298. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/1.0.0/changelog.mdx +0 -26
  299. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/1.0.0/index.mdx +0 -108
  300. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/1.0.0/schema.avro +0 -10
  301. package/templates/default/domains/Orders/services/InventoryService/events/InventoryAdjusted/versioned/1.0.0/schema.json +0 -36
  302. package/templates/default/domains/Orders/services/InventoryService/events/OutOfStock/examples/examples.config.yaml +0 -7
  303. package/templates/default/domains/Orders/services/InventoryService/events/OutOfStock/examples/product-depleted.json +0 -19
  304. package/templates/default/domains/Orders/services/InventoryService/events/OutOfStock/index.mdx +0 -102
  305. package/templates/default/domains/Orders/services/InventoryService/events/OutOfStock/schema.json +0 -28
  306. package/templates/default/domains/Orders/services/InventoryService/events/OutOfStock/versioned/0.0.1/index.mdx +0 -98
  307. package/templates/default/domains/Orders/services/InventoryService/events/OutOfStock/versioned/0.0.1/schema.json +0 -28
  308. package/templates/default/domains/Orders/services/InventoryService/index.mdx +0 -120
  309. package/templates/default/domains/Orders/services/InventoryService/queries/GetInventoryList/index.mdx +0 -22
  310. package/templates/default/domains/Orders/services/InventoryService/queries/GetInventoryList/schema.json +0 -52
  311. package/templates/default/domains/Orders/services/InventoryService/queries/GetInventoryStatus/index.mdx +0 -40
  312. package/templates/default/domains/Orders/services/InventoryService/queries/GetInventoryStatus/schema.json +0 -27
  313. package/templates/default/domains/Orders/services/InventoryService/versioned/0.0.1/index.mdx +0 -52
  314. package/templates/default/domains/Orders/services/NotificationService/index.mdx +0 -82
  315. package/templates/default/domains/Orders/services/NotificationService/queries/GetNotificationDetails/index.mdx +0 -26
  316. package/templates/default/domains/Orders/services/NotificationService/queries/GetNotificationDetails/schema.json +0 -55
  317. package/templates/default/domains/Orders/services/NotificationService/queries/GetUserNotifications/index.mdx +0 -26
  318. package/templates/default/domains/Orders/services/NotificationService/queries/GetUserNotifications/schema.json +0 -46
  319. package/templates/default/domains/Orders/services/OrdersService/changelog.mdx +0 -3
  320. package/templates/default/domains/Orders/services/OrdersService/events/OrderAmended/examples/address-change.json +0 -36
  321. package/templates/default/domains/Orders/services/OrdersService/events/OrderAmended/examples/examples.config.yaml +0 -15
  322. package/templates/default/domains/Orders/services/OrdersService/events/OrderAmended/examples/quantity-change.json +0 -29
  323. package/templates/default/domains/Orders/services/OrdersService/events/OrderAmended/index.mdx +0 -58
  324. package/templates/default/domains/Orders/services/OrdersService/events/OrderAmended/schema.avro +0 -75
  325. package/templates/default/domains/Orders/services/OrdersService/events/OrderAmended/schema.json +0 -70
  326. package/templates/default/domains/Orders/services/OrdersService/events/OrderCancelled/examples/customer-request.json +0 -34
  327. package/templates/default/domains/Orders/services/OrdersService/events/OrderCancelled/examples/examples.config.yaml +0 -15
  328. package/templates/default/domains/Orders/services/OrdersService/events/OrderCancelled/examples/out-of-stock.json +0 -28
  329. package/templates/default/domains/Orders/services/OrdersService/events/OrderCancelled/index.mdx +0 -54
  330. package/templates/default/domains/Orders/services/OrdersService/events/OrderCancelled/schema.json +0 -71
  331. package/templates/default/domains/Orders/services/OrdersService/events/OrderConfirmed/examples/examples.config.yaml +0 -15
  332. package/templates/default/domains/Orders/services/OrdersService/events/OrderConfirmed/examples/gift-order.json +0 -38
  333. package/templates/default/domains/Orders/services/OrdersService/events/OrderConfirmed/examples/standard-order.json +0 -42
  334. package/templates/default/domains/Orders/services/OrdersService/events/OrderConfirmed/index.mdx +0 -55
  335. package/templates/default/domains/Orders/services/OrdersService/events/OrderConfirmed/schema.json +0 -66
  336. package/templates/default/domains/Orders/services/OrdersService/index.mdx +0 -81
  337. package/templates/default/domains/Orders/services/OrdersService/openapi.yml +0 -185
  338. package/templates/default/domains/Orders/services/OrdersService/order-service-asyncapi.yaml +0 -148
  339. package/templates/default/domains/Orders/services/OrdersService/queries/GetOrder/index.mdx +0 -26
  340. package/templates/default/domains/Orders/services/OrdersService/versioned/0.0.2/changelog.mdx +0 -3
  341. package/templates/default/domains/Orders/services/OrdersService/versioned/0.0.2/index.mdx +0 -40
  342. package/templates/default/domains/Orders/services/OrdersService/versioned/0.0.2/openapi.yml +0 -96
  343. package/templates/default/domains/Orders/services/OrdersService/versioned/0.0.2/order-service-asyncapi.yaml +0 -148
  344. package/templates/default/domains/Orders/services/ShippingService/commands/CancelShipment/index.mdx +0 -22
  345. package/templates/default/domains/Orders/services/ShippingService/commands/CancelShipment/schema.json +0 -13
  346. package/templates/default/domains/Orders/services/ShippingService/commands/CreateReturnLabel/index.mdx +0 -22
  347. package/templates/default/domains/Orders/services/ShippingService/commands/CreateReturnLabel/schema.json +0 -19
  348. package/templates/default/domains/Orders/services/ShippingService/commands/CreateShipment/index.mdx +0 -22
  349. package/templates/default/domains/Orders/services/ShippingService/commands/CreateShipment/schema.json +0 -62
  350. package/templates/default/domains/Orders/services/ShippingService/commands/UpdateShipmentStatus/index.mdx +0 -22
  351. package/templates/default/domains/Orders/services/ShippingService/commands/UpdateShipmentStatus/schema.json +0 -29
  352. package/templates/default/domains/Orders/services/ShippingService/events/DeliveryFailed/examples/address-not-found.json +0 -23
  353. package/templates/default/domains/Orders/services/ShippingService/events/DeliveryFailed/examples/customer-unavailable.json +0 -40
  354. package/templates/default/domains/Orders/services/ShippingService/events/DeliveryFailed/examples/damaged-in-transit.json +0 -33
  355. package/templates/default/domains/Orders/services/ShippingService/events/DeliveryFailed/examples/examples.config.yaml +0 -23
  356. package/templates/default/domains/Orders/services/ShippingService/events/DeliveryFailed/index.mdx +0 -22
  357. package/templates/default/domains/Orders/services/ShippingService/events/DeliveryFailed/schema.json +0 -17
  358. package/templates/default/domains/Orders/services/ShippingService/events/ReturnInitiated/examples/defective-item.json +0 -33
  359. package/templates/default/domains/Orders/services/ShippingService/events/ReturnInitiated/examples/examples.config.yaml +0 -15
  360. package/templates/default/domains/Orders/services/ShippingService/events/ReturnInitiated/examples/wrong-item.json +0 -51
  361. package/templates/default/domains/Orders/services/ShippingService/events/ReturnInitiated/index.mdx +0 -22
  362. package/templates/default/domains/Orders/services/ShippingService/events/ReturnInitiated/schema.json +0 -17
  363. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentCreated/examples/examples.config.yaml +0 -15
  364. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentCreated/examples/multi-package.json +0 -76
  365. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentCreated/examples/single-package.json +0 -51
  366. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentCreated/index.mdx +0 -22
  367. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentCreated/schema.json +0 -64
  368. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDelivered/examples/examples.config.yaml +0 -15
  369. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDelivered/examples/front-door-delivery.json +0 -30
  370. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDelivered/examples/signed-delivery.json +0 -31
  371. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDelivered/index.mdx +0 -22
  372. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDelivered/schema.json +0 -17
  373. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDispatched/examples/examples.config.yaml +0 -15
  374. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDispatched/examples/express-shipping.json +0 -33
  375. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDispatched/examples/standard-shipping.json +0 -32
  376. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDispatched/index.mdx +0 -22
  377. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentDispatched/schema.json +0 -17
  378. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentInTransit/examples/domestic-transit.json +0 -48
  379. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentInTransit/examples/examples.config.yaml +0 -15
  380. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentInTransit/examples/international-transit.json +0 -61
  381. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentInTransit/index.mdx +0 -22
  382. package/templates/default/domains/Orders/services/ShippingService/events/ShipmentInTransit/schema.json +0 -17
  383. package/templates/default/domains/Orders/services/ShippingService/index.mdx +0 -61
  384. package/templates/default/domains/Orders/ubiquitous-language.mdx +0 -127
  385. package/templates/default/domains/Orders/versioned/0.0.1/index.mdx +0 -21
  386. package/templates/default/domains/Orders/versioned/0.0.2/index.mdx +0 -50
  387. package/templates/default/domains/Payment/entities/Address/index.mdx +0 -165
  388. package/templates/default/domains/Payment/entities/Invoice/index.mdx +0 -92
  389. package/templates/default/domains/Payment/entities/Payment/index.mdx +0 -140
  390. package/templates/default/domains/Payment/entities/PaymentMethod/index.mdx +0 -80
  391. package/templates/default/domains/Payment/entities/Transaction/index.mdx +0 -80
  392. package/templates/default/domains/Payment/flows/PaymentProcessed/index.mdx +0 -82
  393. package/templates/default/domains/Payment/index.mdx +0 -40
  394. package/templates/default/domains/Payment/services/FraudDetectionService/events/FraudCheckCompleted/examples/check-flagged.json +0 -50
  395. package/templates/default/domains/Payment/services/FraudDetectionService/events/FraudCheckCompleted/examples/check-passed.json +0 -45
  396. package/templates/default/domains/Payment/services/FraudDetectionService/events/FraudCheckCompleted/examples/examples.config.yaml +0 -15
  397. package/templates/default/domains/Payment/services/FraudDetectionService/events/FraudCheckCompleted/index.mdx +0 -50
  398. package/templates/default/domains/Payment/services/FraudDetectionService/events/FraudCheckCompleted/schema.json +0 -44
  399. package/templates/default/domains/Payment/services/FraudDetectionService/index.mdx +0 -62
  400. package/templates/default/domains/Payment/services/PaymentGatewayService/commands/ProcessPayment/index.mdx +0 -75
  401. package/templates/default/domains/Payment/services/PaymentGatewayService/commands/ProcessPayment/schema.json +0 -58
  402. package/templates/default/domains/Payment/services/PaymentGatewayService/events/PaymentFailed/examples/card-declined.json +0 -38
  403. package/templates/default/domains/Payment/services/PaymentGatewayService/events/PaymentFailed/examples/examples.config.yaml +0 -23
  404. package/templates/default/domains/Payment/services/PaymentGatewayService/events/PaymentFailed/examples/expired-card.json +0 -38
  405. package/templates/default/domains/Payment/services/PaymentGatewayService/events/PaymentFailed/examples/insufficient-funds.json +0 -38
  406. package/templates/default/domains/Payment/services/PaymentGatewayService/events/PaymentFailed/index.mdx +0 -64
  407. package/templates/default/domains/Payment/services/PaymentGatewayService/events/PaymentFailed/schema.json +0 -68
  408. package/templates/default/domains/Payment/services/PaymentGatewayService/index.mdx +0 -71
  409. package/templates/default/domains/Payment/services/PaymentService/events/PaymentInitiated/examples/examples.config.yaml +0 -15
  410. package/templates/default/domains/Payment/services/PaymentService/events/PaymentInitiated/examples/express-checkout.json +0 -45
  411. package/templates/default/domains/Payment/services/PaymentService/events/PaymentInitiated/examples/standard-checkout.json +0 -52
  412. package/templates/default/domains/Payment/services/PaymentService/events/PaymentInitiated/index.mdx +0 -37
  413. package/templates/default/domains/Payment/services/PaymentService/events/PaymentInitiated/schema.json +0 -31
  414. package/templates/default/domains/Payment/services/PaymentService/events/PaymentProcessed/examples/examples.config.yaml +0 -15
  415. package/templates/default/domains/Payment/services/PaymentService/events/PaymentProcessed/examples/international-payment.json +0 -48
  416. package/templates/default/domains/Payment/services/PaymentService/events/PaymentProcessed/examples/successful-payment.json +0 -48
  417. package/templates/default/domains/Payment/services/PaymentService/events/PaymentProcessed/index.mdx +0 -43
  418. package/templates/default/domains/Payment/services/PaymentService/events/PaymentProcessed/schema.json +0 -54
  419. package/templates/default/domains/Payment/services/PaymentService/events/PaymentProcessed/versioned/0.0.1/index.mdx +0 -43
  420. package/templates/default/domains/Payment/services/PaymentService/events/PaymentProcessed/versioned/0.0.1/schema.json +0 -54
  421. package/templates/default/domains/Payment/services/PaymentService/index.mdx +0 -41
  422. package/templates/default/domains/Payment/services/PaymentService/queries/GetPaymentStatus/index.mdx +0 -26
  423. package/templates/default/domains/Payment/services/PaymentService/queries/GetPaymentStatus/schema.json +0 -39
  424. package/templates/default/domains/Payment/ubiquitous-language.mdx +0 -96
  425. package/templates/default/domains/ProductCatalog/entities/Category/index.mdx +0 -127
  426. package/templates/default/domains/ProductCatalog/entities/Inventory/index.mdx +0 -119
  427. package/templates/default/domains/ProductCatalog/entities/Product/index.mdx +0 -118
  428. package/templates/default/domains/ProductCatalog/entities/Review/index.mdx +0 -157
  429. package/templates/default/domains/ProductCatalog/index.mdx +0 -73
  430. package/templates/default/domains/ProductCatalog/ubiquitous-language.mdx +0 -88
  431. package/templates/default/domains/Subscriptions/entities/BillingProfile/index.mdx +0 -71
  432. package/templates/default/domains/Subscriptions/entities/SubscriptionPeriod/index.mdx +0 -76
  433. package/templates/default/domains/Subscriptions/flows/CancelSubscription/SubscriptionRenewed/index.mdx +0 -300
  434. package/templates/default/domains/Subscriptions/flows/CancelSubscription/index.mdx +0 -69
  435. package/templates/default/domains/Subscriptions/flows/CancelSubscription/versioned/0.0.1/index.mdx +0 -51
  436. package/templates/default/domains/Subscriptions/index.mdx +0 -35
  437. package/templates/default/domains/Subscriptions/services/BillingService/events/SubscriptionPaymentDue/examples/examples.config.yaml +0 -7
  438. package/templates/default/domains/Subscriptions/services/BillingService/events/SubscriptionPaymentDue/examples/upcoming-renewal.json +0 -28
  439. package/templates/default/domains/Subscriptions/services/BillingService/events/SubscriptionPaymentDue/index.mdx +0 -63
  440. package/templates/default/domains/Subscriptions/services/BillingService/events/SubscriptionPaymentDue/schema.json +0 -54
  441. package/templates/default/domains/Subscriptions/services/BillingService/index.mdx +0 -83
  442. package/templates/default/domains/Subscriptions/services/PlanManagementService/index.mdx +0 -83
  443. package/templates/default/domains/Subscriptions/services/SubscriptionService/commands/CancelSubscription/index.mdx +0 -26
  444. package/templates/default/domains/Subscriptions/services/SubscriptionService/commands/CancelSubscription/schema.json +0 -30
  445. package/templates/default/domains/Subscriptions/services/SubscriptionService/commands/SubscribeUser/index.mdx +0 -26
  446. package/templates/default/domains/Subscriptions/services/SubscriptionService/commands/SubscribeUser/schema.json +0 -31
  447. package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionCancelled/examples/examples.config.yaml +0 -15
  448. package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionCancelled/examples/payment-failure.json +0 -25
  449. package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionCancelled/examples/voluntary-cancellation.json +0 -23
  450. package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionCancelled/index.mdx +0 -26
  451. package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionCancelled/schema.json +0 -35
  452. package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionStarted/examples/annual-plan.json +0 -26
  453. package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionStarted/examples/examples.config.yaml +0 -15
  454. package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionStarted/examples/monthly-plan.json +0 -25
  455. package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionStarted/index.mdx +0 -26
  456. package/templates/default/domains/Subscriptions/services/SubscriptionService/events/UserSubscriptionStarted/schema.json +0 -36
  457. package/templates/default/domains/Subscriptions/services/SubscriptionService/index.mdx +0 -62
  458. package/templates/default/domains/Subscriptions/services/SubscriptionService/queries/GetSubscriptionStatus/index.mdx +0 -26
  459. package/templates/default/domains/Subscriptions/services/SubscriptionService/queries/GetSubscriptionStatus/schema.json +0 -54
  460. package/templates/default/domains/Subscriptions/services/SubscriptionService/queries/GetSubscriptionStatus/versioned/0.0.1/index.mdx +0 -26
  461. package/templates/default/domains/Subscriptions/services/SubscriptionService/queries/GetSubscriptionStatus/versioned/0.0.1/schema.json +0 -54
  462. package/templates/default/domains/Subscriptions/ubiquitous-language.mdx +0 -129
  463. package/templates/default/teams/full-stack.mdx +0 -26
  464. package/templates/default/teams/mobile-devs.mdx +0 -23
  465. package/templates/default/users/aSmith.mdx +0 -27
  466. package/templates/default/users/mSmith.mdx +0 -9
@@ -0,0 +1,35 @@
1
+ ---
2
+ id: product-variant
3
+ name: Product Variant
4
+ version: 1.0.0
5
+ identifier: variantId
6
+ summary: A purchasable variation of a product, such as size or color.
7
+ owners:
8
+ - product-platform
9
+ properties:
10
+ - name: variantId
11
+ type: UUID
12
+ required: true
13
+ description: Unique variant identifier.
14
+ - name: productId
15
+ type: UUID
16
+ required: true
17
+ description: Product this variant belongs to.
18
+ references: product
19
+ relationType: belongsTo
20
+ referencesIdentifier: productId
21
+ - name: sku
22
+ type: string
23
+ required: true
24
+ description: Variant-level SKU.
25
+ - name: attributes
26
+ type: object
27
+ required: true
28
+ description: Variant dimensions such as size, color or material.
29
+ ---
30
+
31
+ ## Overview
32
+
33
+ Product Variant captures the concrete option a customer can buy. It belongs to a [[entity|product]] and is indexed into search when product data changes.
34
+
35
+ <EntityPropertiesTable />
@@ -0,0 +1,35 @@
1
+ ---
2
+ id: search-document
3
+ name: Search Document
4
+ version: 1.0.0
5
+ identifier: documentId
6
+ summary: The denormalized representation of product data indexed by Search.
7
+ owners:
8
+ - search-platform
9
+ properties:
10
+ - name: documentId
11
+ type: string
12
+ required: true
13
+ description: Search index document identifier.
14
+ - name: productId
15
+ type: UUID
16
+ required: true
17
+ description: Product represented by the document.
18
+ references: product
19
+ relationType: represents
20
+ referencesIdentifier: productId
21
+ - name: searchableText
22
+ type: string
23
+ required: true
24
+ description: Text used for matching and ranking.
25
+ - name: indexedAt
26
+ type: datetime
27
+ required: true
28
+ description: Time the document was last indexed.
29
+ ---
30
+
31
+ ## Overview
32
+
33
+ Search Document is the read model maintained by [[system|search-system]]. It is eventually consistent with the Product Catalog System.
34
+
35
+ <EntityPropertiesTable />
@@ -0,0 +1,65 @@
1
+ ---
2
+ id: catalog
3
+ name: Catalog
4
+ version: 1.0.0
5
+ summary: |
6
+ The Catalog domain owns everything about products — how they are created, maintained and made discoverable across Acme Inc. It is the source of truth for product data and powers product search across the business.
7
+ owners:
8
+ - product-platform
9
+ systems:
10
+ - id: product-catalog-system
11
+ version: 1.0.0
12
+ - id: search-system
13
+ version: 1.0.0
14
+ entities:
15
+ - id: product
16
+ version: 1.0.0
17
+ - id: product-variant
18
+ version: 1.0.0
19
+ - id: category
20
+ version: 1.0.0
21
+ - id: search-document
22
+ version: 1.0.0
23
+ badges:
24
+ - content: Core domain
25
+ backgroundColor: blue
26
+ textColor: blue
27
+ icon: RectangleGroupIcon
28
+ - content: Business Critical
29
+ backgroundColor: red
30
+ textColor: red
31
+ icon: ShieldCheckIcon
32
+ ---
33
+
34
+ ## Overview
35
+
36
+ The **Catalog** domain is responsible for the lifecycle of every product Acme Inc sells, and for making those products discoverable. It is split into two internal systems that work together:
37
+
38
+ <Tiles>
39
+ <Tile
40
+ icon="RectangleGroupIcon"
41
+ href="/docs/systems/product-catalog-system/1.0.0"
42
+ title="Product Catalog System"
43
+ description="System of record for product data — create, update, delete and read products."
44
+ />
45
+ <Tile
46
+ icon="MagnifyingGlassIcon"
47
+ href="/docs/systems/search-system/1.0.0"
48
+ title="Search System"
49
+ description="Indexes product changes and serves fast, relevant product search to the rest of the business."
50
+ />
51
+ </Tiles>
52
+
53
+ ### How the systems work together
54
+
55
+ The **Product Catalog System** is the authoritative source of product data. Whenever a product is created, updated or deleted it publishes a domain event. The **Search System** subscribes to those events, keeps its search index in sync, and exposes a search API so other teams never have to query the catalog database directly.
56
+
57
+ The diagram below shows the domain's systems, how they relate, and the people who interact with them.
58
+
59
+ <ContextDiagram />
60
+
61
+ ## Component map
62
+
63
+ These are the components that are part of this domain (parts of the systems in this domain)
64
+
65
+ <NodeGraph />
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: adr-001-use-transactional-outbox
3
+ name: 'ADR-001: Publish product events via a transactional outbox'
4
+ summary: Product change events are written to an outbox table in the same transaction as the change, then relayed to the broker, so an event is never lost or published for a rolled-back change.
5
+ version: 1.0.0
6
+ status: accepted
7
+ date: 2026-02-10
8
+ owners:
9
+ - product-platform
10
+ decisionMakers:
11
+ - product-platform
12
+ appliesTo:
13
+ - type: system
14
+ id: product-catalog-system
15
+ - type: service
16
+ id: product-search-publisher
17
+ - type: container
18
+ id: product-database
19
+ badges:
20
+ - content: Messaging
21
+ backgroundColor: blue
22
+ textColor: blue
23
+ - content: Reliability
24
+ backgroundColor: green
25
+ textColor: green
26
+ ---
27
+
28
+ ## Context
29
+
30
+ The Product Catalog System is the source of truth for products, and other systems — notably the [[system|search-system]] — depend on a reliable stream of `product-created`, `product-updated` and `product-deleted` events. Publishing to the broker directly from the [[service|product-api]] request path creates a dual-write problem: if the database commit succeeds but the broker publish fails (or vice versa), the catalog and its consumers drift out of sync. Lost or phantom events are hard to detect and expensive to reconcile.
31
+
32
+ ## Decision
33
+
34
+ The Product API writes every product change **and** a corresponding row in an `outbox` table inside a single database transaction in the [[container|product-database]]. A separate relay, the [[service|product-search-publisher]], reads unpublished outbox rows in order and publishes them to the broker with at-least-once delivery, marking each row published once acknowledged.
35
+
36
+ This decouples persistence from publishing: the request path only touches the database, and event delivery becomes an independent, retryable concern.
37
+
38
+ ## Consequences
39
+
40
+ - Events are never lost and never published for a change that rolled back — the change and its event share a transaction boundary.
41
+ - Consumers must be **idempotent**, since at-least-once delivery means an event can be redelivered.
42
+ - There is a small publish latency between the commit and the relay draining the outbox.
43
+ - The outbox table needs a retention/cleanup policy so it doesn't grow unbounded.
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: adr-002-postgres-as-system-of-record
3
+ name: 'ADR-002: Use PostgreSQL as the product system of record'
4
+ summary: Product data is stored in a single PostgreSQL database that acts as the authoritative system of record, with derived stores (like the search index) rebuilt from it.
5
+ version: 1.0.0
6
+ status: accepted
7
+ date: 2026-02-12
8
+ owners:
9
+ - product-platform
10
+ decisionMakers:
11
+ - product-platform
12
+ appliesTo:
13
+ - type: system
14
+ id: product-catalog-system
15
+ - type: container
16
+ id: product-database
17
+ related:
18
+ - id: adr-001-use-transactional-outbox
19
+ badges:
20
+ - content: Data
21
+ backgroundColor: purple
22
+ textColor: purple
23
+ ---
24
+
25
+ ## Context
26
+
27
+ Products are a small-to-medium, strongly relational dataset (products, categories, pricing, lifecycle status) that needs transactional integrity, an enforceable schema, and the ability to write a change and its outbox event atomically. We also want a single, unambiguous source of truth so that derived stores — such as the [[system|search-system]]'s index — can be treated as disposable and rebuilt at any time.
28
+
29
+ ## Decision
30
+
31
+ The Product Catalog System uses a single **PostgreSQL** database, the [[container|product-database]], as the authoritative system of record. It holds the `products` table and the outbox table (see [[adr|adr-001-use-transactional-outbox]]). The [[service|product-api]] is the only writer on the request path; the [[service|product-worker]] performs asynchronous enrichment.
32
+
33
+ Any other representation of product data elsewhere in the business is a **derived read model**, not a source of truth, and must be rebuildable by replaying product events.
34
+
35
+ ## Consequences
36
+
37
+ - Strong consistency and transactional outbox writes are straightforward with a single relational store.
38
+ - The search index and any future read models can be rebuilt from the catalog, keeping them disposable.
39
+ - The database is a scaling focal point; heavy read traffic should be served from read replicas or downstream read models rather than the primary.
40
+ - Schema changes need migrations and care, since this is the authoritative store.
@@ -0,0 +1,41 @@
1
+ ---
2
+ id: adr-003-offload-async-work-to-worker
3
+ name: 'ADR-003: Offload long-running catalog work to a dedicated worker'
4
+ summary: Slow and asynchronous catalog tasks (enrichment, image processing, bulk imports) run in a separate Product Worker so the Product API stays fast and predictable.
5
+ version: 1.0.0
6
+ status: accepted
7
+ date: 2026-02-18
8
+ owners:
9
+ - product-platform
10
+ decisionMakers:
11
+ - product-platform
12
+ appliesTo:
13
+ - type: system
14
+ id: product-catalog-system
15
+ - type: service
16
+ id: product-worker
17
+ - type: service
18
+ id: product-api
19
+ badges:
20
+ - content: Architecture
21
+ backgroundColor: blue
22
+ textColor: blue
23
+ - content: Performance
24
+ backgroundColor: green
25
+ textColor: green
26
+ ---
27
+
28
+ ## Context
29
+
30
+ Some catalog operations are slow or bursty: enriching products with derived attributes, processing and optimising images, and ingesting large supplier feeds. Running this work inline in the [[service|product-api]] request path would make API latency unpredictable and couple the responsiveness of create/update/read operations to whatever heavy job happens to be running.
31
+
32
+ ## Decision
33
+
34
+ The Product Catalog System runs a dedicated [[service|product-worker]] for long-running and asynchronous tasks. The [[service|product-api]] handles validation, persistence and the outbox write synchronously, then returns; the worker picks up enrichment, media processing and bulk imports independently, reading from and writing back to the [[container|product-database]].
35
+
36
+ ## Consequences
37
+
38
+ - The Product API has a small, predictable surface and stays fast under load.
39
+ - Heavy work can be scaled, retried and scheduled independently of the API.
40
+ - Some product attributes are **eventually** populated after creation, so consumers must not assume every derived field is present immediately.
41
+ - There are now two services writing to the [[container|product-database]], so write paths must respect the same invariants and avoid conflicting updates.
@@ -0,0 +1,45 @@
1
+ ---
2
+ id: product-database
3
+ name: Product Database
4
+ version: 1.0.0
5
+ summary: PostgreSQL database that is the system of record for all product data.
6
+ container_type: database
7
+ technology: postgres@16
8
+ authoritative: true
9
+ access_mode: readWrite
10
+ purpose: System of record for products, plus the change outbox used to publish events
11
+ classification: internal
12
+ retention: indefinite
13
+ residency: eu-west-1
14
+ styles:
15
+ icon: /icons/database/postgresql.svg
16
+ ---
17
+
18
+ <NodeGraph />
19
+
20
+ ### What is this?
21
+
22
+ The **Product Database** is the authoritative store for every product in the catalog. The [[service|product-api]] reads from and writes to it, and the [[service|product-worker]] uses it for asynchronous enrichment. It also holds the **outbox** table that the [[service|product-search-publisher]] reads to publish product change events.
23
+
24
+ ### What does it store?
25
+
26
+ - **Products** — one row per product: SKU, name, description, price, currency, category and lifecycle status.
27
+ - **Outbox** — one row per product change, used to reliably publish [[event|product-created]], [[event|product-updated]] and [[event|product-deleted]] events.
28
+
29
+ ### Schema
30
+
31
+ <AccordionGroup>
32
+ <Accordion title="Product Database schema">
33
+ <Schema file="schema.sql" lang="sql" title="schema.sql" />
34
+ </Accordion>
35
+ </AccordionGroup>
36
+
37
+ ### Access patterns
38
+
39
+ - The [[service|product-api]] is the only writer to the `products` table on the request path.
40
+ - The [[service|product-search-publisher]] is a read-only consumer of the `outbox` table.
41
+ - The [[service|product-worker]] reads and writes for asynchronous enrichment jobs.
42
+
43
+ ### Why an outbox?
44
+
45
+ Writing the product change and the event in the **same transaction** guarantees we never persist a change without an event, or publish an event for a change that rolled back. The publisher reads the outbox and emits events with at-least-once delivery.
@@ -0,0 +1,33 @@
1
+ -- Product Database — system of record for the product catalog
2
+
3
+ CREATE TABLE products (
4
+ product_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
5
+ sku TEXT NOT NULL UNIQUE,
6
+ name TEXT NOT NULL,
7
+ description TEXT,
8
+ price_cents INTEGER NOT NULL CHECK (price_cents >= 0),
9
+ currency CHAR(3) NOT NULL,
10
+ category TEXT,
11
+ status TEXT NOT NULL DEFAULT 'DRAFT'
12
+ CHECK (status IN ('DRAFT', 'ACTIVE', 'ARCHIVED')),
13
+ created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
14
+ updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
15
+ );
16
+
17
+ CREATE INDEX idx_products_category ON products (category);
18
+ CREATE INDEX idx_products_status ON products (status);
19
+
20
+ -- Transactional outbox — change events are written here in the same
21
+ -- transaction as the product change, then drained by the Product Search Publisher.
22
+ CREATE TABLE outbox (
23
+ id BIGSERIAL PRIMARY KEY,
24
+ product_id UUID NOT NULL REFERENCES products (product_id),
25
+ event_type TEXT NOT NULL
26
+ CHECK (event_type IN ('ProductCreated', 'ProductUpdated', 'ProductDeleted')),
27
+ payload JSONB NOT NULL,
28
+ occurred_at TIMESTAMPTZ NOT NULL DEFAULT now(),
29
+ published_at TIMESTAMPTZ
30
+ );
31
+
32
+ -- Index used by the publisher to find unpublished changes in order.
33
+ CREATE INDEX idx_outbox_unpublished ON outbox (id) WHERE published_at IS NULL;
@@ -0,0 +1,72 @@
1
+ ---
2
+ id: product-catalog-system
3
+ name: Product Catalog System
4
+ version: 1.0.0
5
+ summary: |
6
+ Internal system that is the source of truth for product data. Owns the product database and publishes product change events for the rest of the business to consume.
7
+ owners:
8
+ - product-platform
9
+ services:
10
+ - id: product-api
11
+ - id: product-worker
12
+ - id: product-search-publisher
13
+ containers:
14
+ - id: product-database
15
+ relationships:
16
+ - id: search-system
17
+ label: notifies of product changes
18
+ actors:
19
+ - id: merchandiser
20
+ name: Merchandiser
21
+ label: creates and updates products
22
+ direction: inbound
23
+ - id: catalog-admin
24
+ name: Catalog Admin
25
+ label: manages categories and pricing
26
+ direction: inbound
27
+ badges:
28
+ - content: Internal
29
+ backgroundColor: gray
30
+ textColor: gray
31
+ icon: LockClosedIcon
32
+ ---
33
+
34
+ ## Overview
35
+
36
+ The **Product Catalog System** is the system of record for products at Acme Inc. It accepts commands to create, update and delete products, persists them in the [[container|product-database]], and emits domain events whenever product data changes so downstream systems — like the [[system|search-system]] — can react.
37
+
38
+ ## Context Diagram
39
+
40
+ How this system relates to the other systems around it.
41
+
42
+ <ContextDiagram />
43
+
44
+ ## Resource Diagram
45
+
46
+ The services, data stores and messages that make up this system.
47
+
48
+ <ComponentDiagram />
49
+
50
+ ## What's inside
51
+
52
+ | Component | Type | Responsibility |
53
+ | ------------------------------------- | ---------- | --------------------------------------------------------------------------- |
54
+ | [[service\|product-api]] | Service | Public-facing API. Handles create/update/delete commands and product reads. |
55
+ | [[service\|product-worker]] | Service | Processes long-running and asynchronous catalog work off the request path. |
56
+ | [[service\|product-search-publisher]] | Service | Publishes product change events for the Search System to consume. |
57
+ | [[container\|product-database]] | Data store | PostgreSQL system of record for all product data. |
58
+
59
+ ## Messages this system publishes
60
+
61
+ When product data changes, the system emits these events:
62
+
63
+ - [[event|product-created]] — a new product has been added to the catalog.
64
+ - [[event|product-updated]] — an existing product's data has changed.
65
+ - [[event|product-deleted]] — a product has been removed from the catalog.
66
+ - [[adr|adr-001-use-transactional-outbox]] — a product has been removed from the catalog.
67
+
68
+ ## Architecture decisions
69
+
70
+ The key decisions that shaped this system. Search, filter by status, or sort by clicking a column.
71
+
72
+ <ADRTable />
@@ -0,0 +1,32 @@
1
+ ---
2
+ id: create-product
3
+ name: Create Product
4
+ version: 1.0.0
5
+ summary: |
6
+ Command to add a new product to the catalog.
7
+ owners:
8
+ - product-platform
9
+ schemaPath: schema.json
10
+ operation:
11
+ method: POST
12
+ path: /products
13
+ statusCodes: ['201', '400', '409']
14
+ sidebar:
15
+ badge: 'POST'
16
+ ---
17
+
18
+ import Footer from '@catalog/components/footer.astro';
19
+
20
+ ## Overview
21
+
22
+ `CreateProduct` is handled by the [[service|product-api]]. It validates the incoming product, writes it to the [[container|product-database]], and on success publishes a [[event|product-created]] event.
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,41 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "CreateProduct",
4
+ "description": "Command to add a new product to the catalog",
5
+ "type": "object",
6
+ "properties": {
7
+ "sku": {
8
+ "description": "Stock keeping unit — must be unique",
9
+ "type": "string"
10
+ },
11
+ "name": {
12
+ "description": "Display name of the product",
13
+ "type": "string",
14
+ "minLength": 1
15
+ },
16
+ "description": {
17
+ "description": "Long-form product description",
18
+ "type": "string"
19
+ },
20
+ "price": {
21
+ "description": "Price in minor units (e.g. cents)",
22
+ "type": "integer",
23
+ "minimum": 0
24
+ },
25
+ "currency": {
26
+ "description": "ISO 4217 currency code",
27
+ "type": "string",
28
+ "pattern": "^[A-Z]{3}$"
29
+ },
30
+ "category": {
31
+ "description": "Category the product belongs to",
32
+ "type": "string"
33
+ },
34
+ "status": {
35
+ "description": "Initial lifecycle status — defaults to DRAFT",
36
+ "type": "string",
37
+ "enum": ["DRAFT", "ACTIVE", "ARCHIVED"]
38
+ }
39
+ },
40
+ "required": ["sku", "name", "price", "currency"]
41
+ }
@@ -0,0 +1,32 @@
1
+ ---
2
+ id: delete-product
3
+ name: Delete Product
4
+ version: 1.0.0
5
+ summary: |
6
+ Command to remove a product from the catalog.
7
+ owners:
8
+ - product-platform
9
+ schemaPath: schema.json
10
+ operation:
11
+ method: DELETE
12
+ path: /products/{productId}
13
+ statusCodes: ['204', '404']
14
+ sidebar:
15
+ badge: 'DELETE'
16
+ ---
17
+
18
+ import Footer from '@catalog/components/footer.astro';
19
+
20
+ ## Overview
21
+
22
+ `DeleteProduct` is handled by the [[service|product-api]]. It removes a product from the [[container|product-database]] and, on success, publishes a [[event|product-deleted]] event so downstream systems can clean up.
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,19 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "DeleteProduct",
4
+ "description": "Command to remove a product from the catalog",
5
+ "type": "object",
6
+ "properties": {
7
+ "productId": {
8
+ "description": "Unique identifier of the product to delete",
9
+ "type": "string",
10
+ "format": "uuid"
11
+ },
12
+ "reason": {
13
+ "description": "Optional reason the product is being removed",
14
+ "type": "string",
15
+ "enum": ["DISCONTINUED", "DUPLICATE", "MERCHANT_REQUEST", "OTHER"]
16
+ }
17
+ },
18
+ "required": ["productId"]
19
+ }
@@ -0,0 +1,32 @@
1
+ ---
2
+ id: update-product
3
+ name: Update Product
4
+ version: 1.0.0
5
+ summary: |
6
+ Command to update an existing product in the catalog.
7
+ owners:
8
+ - product-platform
9
+ schemaPath: schema.json
10
+ operation:
11
+ method: PATCH
12
+ path: /products/{productId}
13
+ statusCodes: ['200', '400', '404']
14
+ sidebar:
15
+ badge: 'PATCH'
16
+ ---
17
+
18
+ import Footer from '@catalog/components/footer.astro';
19
+
20
+ ## Overview
21
+
22
+ `UpdateProduct` is handled by the [[service|product-api]]. It applies a partial update to an existing product in the [[container|product-database]] and, on success, publishes a [[event|product-updated]] event describing what changed.
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,42 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "UpdateProduct",
4
+ "description": "Command to update an existing product. Only the fields supplied are changed.",
5
+ "type": "object",
6
+ "properties": {
7
+ "productId": {
8
+ "description": "Unique identifier of the product to update",
9
+ "type": "string",
10
+ "format": "uuid"
11
+ },
12
+ "name": {
13
+ "description": "New display name",
14
+ "type": "string",
15
+ "minLength": 1
16
+ },
17
+ "description": {
18
+ "description": "New long-form description",
19
+ "type": "string"
20
+ },
21
+ "price": {
22
+ "description": "New price in minor units (e.g. cents)",
23
+ "type": "integer",
24
+ "minimum": 0
25
+ },
26
+ "currency": {
27
+ "description": "ISO 4217 currency code",
28
+ "type": "string",
29
+ "pattern": "^[A-Z]{3}$"
30
+ },
31
+ "category": {
32
+ "description": "New category",
33
+ "type": "string"
34
+ },
35
+ "status": {
36
+ "description": "New lifecycle status",
37
+ "type": "string",
38
+ "enum": ["DRAFT", "ACTIVE", "ARCHIVED"]
39
+ }
40
+ },
41
+ "required": ["productId"]
42
+ }
@@ -0,0 +1,29 @@
1
+ ---
2
+ id: product-created
3
+ name: Product Created
4
+ version: 1.0.0
5
+ summary: |
6
+ Published when a new product has been added to the catalog.
7
+ owners:
8
+ - product-platform
9
+ badges:
10
+ - content: 'Broker:Kafka'
11
+ backgroundColor: blue
12
+ textColor: blue
13
+ icon: BoltIcon
14
+ schemaPath: schema.json
15
+ ---
16
+
17
+ import Footer from '@catalog/components/footer.astro';
18
+
19
+ ## Overview
20
+
21
+ `ProductCreated` is published by the [[service|product-search-publisher]] whenever a new product is successfully added to the catalog by the [[service|product-api]]. The [[system|search-system]] consumes this event to index the new product so it becomes discoverable.
22
+
23
+ <SchemaViewer file="schema.json" title="JSON Schema" maxHeight="500" />
24
+
25
+ ## Architecture diagram
26
+
27
+ <NodeGraph />
28
+
29
+ <Footer />