Module 10 · Enterprise Data Exchange · 10C
Schema & Release Contracts
Can we evolve the schema without breaking consumers?
Try this
- 1Add optional field source_language
- 2Run compatibility dry-run
- Expected: Additive change passes as v1-compatible; a breaking change would require v2 with 60-day overlap.
Data dictionary · /v1/prices
Canonical fields
| listing_key | string | required |
| competitor | string | required |
| currency | ISO-4217 | required |
| ticket | decimal | required |
| effective | decimal | required |
| price_per_100 | decimal | optional |
| in_stock | boolean | required |
| week_end | date | required |
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;
}