En döner-kæde med 4 filialer i Izmir Alsancak er tilsluttet Getir Yemek, Trendyol GO og Yemeksepeti samtidigt. I stedet for at vedligeholde tre separate menuer bruger de thMenu som master record; lagerfradrag sker ét sted, og en webhook fan-out opdaterer de tre platforme.
Master record arkitektur
Kolonnen products.stock_quantity i D1_MENU er den eneste kanoniske kilde. Ved ordrebekræftelse: UPDATE products SET stock_quantity = stock_quantity - 1 WHERE id = ? AND stock_quantity > 0. 0 rækker = udsolgt.
Ved succes ryger en event til Cloudflare Queue. Tre workers patcher parallelt API'erne. Gennemsnitlig fan-out latency 340 ms.
Konfliktløsning
Scenarie: 5 lahmacun på lager. Inden for samme sekund kommer 5 ordrer fra tre platforme. Atomisk UPDATE serialiserer — den sidste finder 0 og afvises. Slutstand 0, tre "udsolgt"-signaler fan-outes.
D1 har ikke eksplicit row lock, men WHERE stock > 0 spiller samme rolle. Nul over-sell på 6 måneder.
Drift-afstemning
Yemeksepeti-webhooken har 30 s forsinkelse, Trendyol er øjeblikkelig, Getir pollerne hver 5 s. En timeligt cron sammenligner alle tre med master.
- Yemeksepeti 5, Getir 3: master til 5, PATCH Getir
- Master 0, platform 2: øjeblikkelig PATCH 0
- Drift > 3: Slack-alarm
FAQ
Skal jeg indtaste menuer på hver platform manuelt? Nej, master record + fan-out automatiserer alt.
Hvem har prioritet ved race? FIFO efter timestamp; taberen får 422.
Er cron manuel? Nej, timelig på Workers med Slack-alarm ved stort drift.
Var dette nyttigt? Del det.
Relaterede artikler
Hvad er en QR-menu? Den komplette guide til restauranter
En QR-menu giver gæster øjeblikkelig adgang til dit menukort via deres smartphon…
Skift fra papirmenu til digitalt QR-menu: trin-for-trin guide
Vil du indføre QR-menuer, men ved ikke, hvor du skal starte? Denne guide dækker …
Geo-målrettede QR-menuer: forskellige sprog efter besøgendes IP
Sådan dirigerer et 180-pladsers all-inclusive resort i Antalya samme QR til tyrk…