Egy 4 fiókos döner lánc Izmir Alsancakban egyszerre csatlakozik Getir Yemekhez, Trendyol GO-hoz és Yemeksepetihez. Három különálló menü helyett a thMenu-t használják master recordként; a készletcsökkenés egy helyen történik, és egy webhook fan-out frissíti a három platformot.
Master record architektúra
A D1_MENU products.stock_quantity oszlopa az egyetlen kanonikus forrás. Rendelés megerősítésekor: UPDATE products SET stock_quantity = stock_quantity - 1 WHERE id = ? AND stock_quantity > 0. 0 érintett sor = elfogyott.
Sikernél az esemény a Cloudflare Queue-ba kerül. Három worker párhuzamosan PATCH-eli az API-kat. Átlagos fan-out latencia 340 ms.
Konfliktusfeloldás
Forgatókönyv: 5 lahmacun raktáron. Ugyanazon másodpercben 5 rendelés érkezik három platformról. Az atomi UPDATE sorbarendezi — az utolsó 0-t talál és elutasításra kerül. Végállapot 0, három "elfogyott" jel.
D1-ben nincs explicit row lock, de a WHERE stock > 0 ugyanazt teszi. Nulla túl-eladás 6 hónapban.
Drift egyeztetés
Yemeksepeti webhook 30 s késéssel, Trendyol azonnali, Getir 5 másodperces pollozással. Egy óránkénti cron hasonlítja a hármat a masterhez.
- Yemeksepeti 5, Getir 3: master 5-re, Getir PATCH
- Master 0, platform 2: azonnali 0 PATCH
- Drift > 3: Slack riasztás
GYIK
Kézzel kell-e menüt felvinni minden platformra? Nem, a master record + fan-out mindent automatizál.
Kinek van prioritása race-ben? FIFO timestamp szerint, a vesztes 422-t kap.
A cron manuális? Nem, óránkénti Workers-en, nagy drift esetén Slack riasztással.
Hasznosnak találtad? Oszd meg.
Kapcsolódó cikkek
Mi az a QR-menü? Teljes útmutató éttermek számára
A QR-menü lehetővé teszi, hogy vendégei okostelefonjukon azonnal elérjék az étla…
Papír étlapról digitális QR-menüre váltani: lépésről lépésre útmutató
QR-menüt szeretne bevezetni, de nem tudja, hol kezdje? Ez az útmutató lefedi a f…
Geocélzott QR-étlapok: különböző nyelvek a látogató IP-je alapján
Hogyan irányítja egy 180 férőhelyes all-inclusive üdülő Antalyában ugyanazt a QR…