PostgreSQL
Customer records
crm_customers(
customer_uuid, full_name, email
)- customer_uuid → Customer.id
- full_name → Customer.name
Architecture
CatDB treats schemas and mappings as versioned inputs to planning. Federation and materialization are choices made after the mapping is validated.
Source-to-domain integration
A retailer keeps customer records, orders, fulfillment links, and product search data in different systems. Four typed mappings connect those physical schemas to one domain.
Customer records
crm_customers(
customer_uuid, full_name, email
)Online orders
orders { orderNo, custRef,
lines: [{ sku, qty }] }Fulfillment graph
(Order {order_no})
-[:CONTAINS {qty}]->(Product {sku})Catalog search
{ product_id, embedding,
metadata: { sku, title } }Customer.orders.items.productA source maps into a shared domain. A consumer maps out of that domain. The conditional reuse argument depends on those mappings being adequate, maintained, and explicit about information loss.
The finite schema, mapping, instance, loss, and schema-diff semantics are expressed in Rust and Haskell against one shared fixture set. Lean checks a selected group of path and mapping laws.