Síť döner se 4 pobočkami v Izmiru Alsancak je současně připojena ke Getir Yemek, Trendyol GO a Yemeksepeti. Místo udržování tří samostatných menu používají thMenu jako master record; odečty skladu probíhají na jednom místě a webhook fan-out aktualizuje tři platformy.
Architektura master record
Sloupec products.stock_quantity v D1_MENU je jediný kanonický zdroj. Při potvrzení objednávky: UPDATE products SET stock_quantity = stock_quantity - 1 WHERE id = ? AND stock_quantity > 0. 0 řádků = vyprodáno.
Při úspěchu jde event do Cloudflare Queue. Tři workeři paralelně PATCHují API. Průměrná latence fan-out 340 ms.
Řešení konfliktů
Scénář: 5 lahmacun skladem. Ve stejné sekundě přichází 5 objednávek ze tří platforem. Atomický UPDATE serializuje — poslední najde 0 a je odmítnut. Konečný stav 0, tři signály "vyprodáno".
D1 nemá explicitní row lock, ale WHERE stock > 0 plní stejnou roli. Nula over-sellingu za 6 měsíců.
Sjednocení driftu
Webhook Yemeksepeti má 30s zpoždění, Trendyol je okamžitý, Getir polluje každých 5 s. Hodinový cron porovnává tři s masterem.
- Yemeksepeti 5, Getir 3: master na 5, PATCH Getir
- Master 0, platforma 2: okamžitě PATCH 0
- Drift > 3: Slack alert
FAQ
Musím menu vkládat ručně na každé platformě? Ne, master record + fan-out vše automatizují.
Kdo má prioritu při race? FIFO podle timestamp, poražený dostane 422.
Je cron manuální? Ne, hodinový na Workers s Slack alertem při velkém driftu.
Bylo to užitečné? Sdílejte to.
Související články
Co je QR menu? Kompletní průvodce pro restaurace
QR menu umožňuje hostům okamžitý přístup k vašemu jídelníčku přes smartphone — b…
Přechod z papírového na digitální QR menu: průvodce krok za krokem
Chcete zavést QR menu, ale nevíte, kde začít? Tento průvodce pokrývá fotografová…
Geo-cílené QR menu: různé jazyky podle IP návštěvníka
Jak 180místný all-inclusive resort v Antalyi směruje stejný QR kód na turecké, n…