⌘K
EventCatalogAcme Inc
HomeDocs
Browse
CatalogSchemas & APIs
Organization
TeamsUsers

Settings
Platform

Data ownership

The source-of-truth data stores in the default catalog and the rules for reading and writing business state.

Data

Every durable business concept has an owning system and a source-of-truth store. Other systems should depend on published contracts instead of reaching into another system’s data store.

Source-of-truth stores

Data storeOwnerBusiness data
Product DatabaseProduct DatabaseContainer•v1.0.0PostgreSQL database that is the system of record for all product data.MapView docsProduct Catalog SystemProduct Catalog SystemSystem•v1.0.0Internal system that is the source of truth for product data. Owns the product database and publishes product change eve...Ownerproduct-platformMapView docsProducts, product attributes and catalog change outbox.
Search IndexSearch IndexContainer•v1.0.0The denormalised, search-optimised index of products that powers product search.MapView docsSearch SystemSearch SystemSystem•v1.0.0Internal system that keeps product data searchable. Consumes product change events from the Product Catalog System, main...Ownersearch-platformMapView docsSearch-optimised product documents.
Cart DatabaseCart DatabaseContainer•v1.0.0PostgreSQL database that is the system of record for shopping carts and their items.MapView docsCart SystemCart SystemSystem•v1.0.0Internal system that owns the customer's shopping cart and the checkout flow. It is the source of truth for cart content...Ownershopping-platformMapView docsActive shopping carts and checkout state.
Promotion DatabasePromotion DatabaseContainer•v1.0.0PostgreSQL store of promotion and discount rules.MapView docsPromotion SystemPromotion SystemSystem•v1.0.0Internal system that calculates the discounts and promotions that apply to a cart. It owns promotion rules and returns c...Ownershopping-platformMapView docsPromotion rules and discount configuration.
Order DatabaseOrder DatabaseContainer•v1.0.0PostgreSQL database that is the system of record for orders and their items.MapView docsOrder Management SystemOrder Management SystemSystem•v1.0.0Internal system that is the source of truth for orders. It creates orders, tracks their lifecycle, and publishes events ...Ownerordering-platformMapView docsOrders and order lifecycle state.
Payment DatabasePayment DatabaseContainer•v1.0.0PostgreSQL database that is the system of record for payments and refunds.MapView docsPayment Processing SystemPayment Processing SystemSystem•v1.0.0Internal system that orchestrates payment for orders. It authorizes payments, requests charges from the external payment...Ownerpayments-platformMapView docsPayment intents, charge outcomes and refunds.
Inventory DatabaseInventory DatabaseContainer•v1.0.0PostgreSQL database that is the system of record for stock levels and reservations.MapView docsInventory SystemInventory SystemSystem•v1.0.0Internal system that tracks stock and reserves it for orders. It is the source of truth for available inventory and conf...Ownerfulfilment-platformMapView docsStock levels and reservations.
Warehouse DatabaseWarehouse DatabaseContainer•v1.0.0PostgreSQL database that stores picking jobs and their status.MapView docsWarehouse SystemWarehouse SystemSystem•v1.0.0Internal system that picks and packs orders in the warehouse. It reacts to completed orders, organises picking, and sign...Ownerfulfilment-platformMapView docsPicking and packing work.
Customer DatabaseCustomer DatabaseContainer•v1.0.0PostgreSQL database that is the system of record for all customer profile data.MapView docsCustomer Management SystemCustomer Management SystemSystem•v1.0.0Internal system that is the source of truth for customer profile data. Owns the customer database and publishes customer...Ownercustomer-platformMapView docsCustomer profiles.
Review DatabaseReview DatabaseContainer•v1.0.0PostgreSQL database that is the system of record for reviews and their moderation state.MapView docsReviews & RatingsReviews & RatingsDomain•v1.0.0The Reviews & Ratings domain owns customer feedback on products — how reviews are submitted, moderated, published and ag...Ownerreviews-platformMapView docsReviews and moderation state.
Rating CacheRating CacheContainer•v1.0.0Redis cache that serves each product's aggregate star rating with low latency.MapView docsReviews & RatingsReviews & RatingsDomain•v1.0.0The Reviews & Ratings domain owns customer feedback on products — how reviews are submitted, moderated, published and ag...Ownerreviews-platformMapView docsProduct rating read model.

Read model pattern

Search SystemSearch SystemSystem•v1.0.0Internal system that keeps product data searchable. Consumes product change events from the Product Catalog System, main...Ownersearch-platformMapView docs and Rating CacheRating CacheContainer•v1.0.0Redis cache that serves each product's aggregate star rating with low latency.MapView docs are read models. They do not own the original facts. They rebuild their state from events such as Product CreatedProduct CreatedEvent•v1.0.0Published when a new product has been added to the catalog. Ownerproduct-platformSchemaMapView docs, Product UpdatedProduct UpdatedEvent•v1.0.0Published when an existing product's data has changed. Ownerproduct-platformSchemaMapView docs, Review PublishedReview PublishedEvent•v1.0.0Published when a submitted review passes moderation and becomes visible on the storefront. Ownerreviews-platformSchemaMapView docs and Rating UpdatedRating UpdatedEvent•v1.0.0Published when a product's aggregate rating changes as a result of a newly published review. Ownerreviews-platformSchemaMapView docs.

Write rule

Only the owning system writes its source-of-truth store. Cross-system updates should be commands or events. For example, checkout asks fulfilment to reserve stock with Reserve InventoryReserve InventoryCommand•v1.0.0Command to reserve stock for the items in a checked-out cart. Ownerordering-platformSchemaMapView docs rather than writing Inventory DatabaseInventory DatabaseContainer•v1.0.0PostgreSQL database that is the system of record for stock levels and reservations.MapView docs directly.

Consistency rule

User-facing flows should make the consistency model explicit. Checkout needs coordinated confirmation across inventory, payment and order creation, so it uses the Checkout SagaCheckout SagaFlow•v1.0.0How the Checkout Orchestrator turns a checked-out cart into an order — reserving inventory, authorizing payment and crea...Ownerordering-platformView flowView docs. Search indexing can lag product writes, so it uses asynchronous product events.

PreviousSystems mapNextEventing model

On this page

Source-of-truth storesRead model patternWrite ruleConsistency rule

Document Owners (1)

David Boyne

EventCatalog Backstage Integration

Missing license key for backstage integration.

Please configure the backstage plugin to embed this page into Backstage.

Configure backstage plugin →