Land Raw vs. Normalize at Ingest
01 // Problem & Context
Four e-commerce platforms (Shopify, BigCommerce, WooCommerce, Magento 1, Magento 2) each send customer data in different schemas. Need a unified model for downstream products โ recommendations, segmentation, attribution.
02 // Considered vs. Chosen
One unified schema across all platforms at write time. Simpler downstream, but a wrong shape at ingest becomes a multi-service migration to fix.
Preserve each source's schema, normalize downstream via views and query models. New consumers can ask for data shaped differently without touching the landing layer.
Preserve each source's schema, normalize downstream via views and query models. New consumers can ask for data shaped differently without touching the landing layer.
Thousands of tables instead of one unified schema. Schema migrations run across all client tables โ complex coordination and operational overhead (index management, backups).
At scale, operational overhead is worth buying architectural flexibility. Normalize where mistakes are cheap (views, query models) โ don't commit the whole system to a wrong ingest decision.