Module 10 · Enterprise Data Exchange · 10C

Schema & Release Contracts

Can we evolve the schema without breaking consumers?

Try this
  1. 1Add optional field source_language
  2. 2Run compatibility dry-run
  3. Expected: Additive change passes as v1-compatible; a breaking change would require v2 with 60-day overlap.
Data dictionary · /v1/prices

Canonical fields

listing_keystringrequired
competitorstringrequired
currencyISO-4217required
ticketdecimalrequired
effectivedecimalrequired
price_per_100decimaloptional
in_stockbooleanrequired
week_enddaterequired
Entities: Brand ─< SKU ─< Match >─ Listing ─< Observation >─ Run >─ Source
Change proposal

Compatibility dry-run

API version comparison

v1 vs v2 (preview)

v1.x response row
{
  "listing_key": "velvet:mist:0",
  "ticket": 99,
  "effective": 79
}
v2 (breaking, 60-day overlap)
{
  "listing_key": "velvet:mist:0",
  "price": {
    "ticket_price": 99,
    "effective_price": 79,
    "currency": "AED"
  },
  "source_language": "ar"
}
CSV header preview
listing_key,competitor,currency,ticket,effective,price_per_100,in_stock,week_end
Parquet schema preview
message prices {
  required binary listing_key;
  required binary competitor;
  required binary currency;
  required double ticket;
  required double effective;
  optional double price_per_100;
  required boolean in_stock;
  required binary week_end;
}
PricePulse · Competitive Pricing Intelligence OS · Simulated demo • Fictional data. All brands, competitors, people, prices and dates are invented.Powered by Quantzig