Una catena döner con 4 filiali a Izmir Alsancak è connessa contemporaneamente a Getir Yemek, Trendyol GO e Yemeksepeti. Invece di mantenere tre menù, usano thMenu come master record; i decrementi di stock avvengono in un solo posto e un fan-out webhook aggiorna le tre piattaforme.
Architettura master record
La colonna products.stock_quantity in D1_MENU è la fonte canonica unica. Alla conferma di un ordine: UPDATE products SET stock_quantity = stock_quantity - 1 WHERE id = ? AND stock_quantity > 0. 0 righe = esaurito.
Al successo, un evento finisce in Cloudflare Queue. Tre worker patchano in parallelo le API. Latenza media 340 ms.
Risoluzione conflitti
Scenario: 5 lahmacun in stock. Nello stesso secondo arrivano 5 ordini da tre piattaforme. L'UPDATE atomico serializza — l'ultimo trova 0 ed è rifiutato. Stato finale 0, tre segnali "esaurito".
D1 non ha lock di riga ma WHERE stock > 0 svolge lo stesso ruolo. Zero over-sell in 6 mesi.
Riconciliazione drift
Yemeksepeti ha 30 s di delay, Trendyol è immediato, Getir polla ogni 5 s. Un cron orario confronta i tre col master.
- Yemeksepeti 5, Getir 3: master a 5, PATCH Getir
- Master 0, piattaforma 2: PATCH 0 immediato
- Drift > 3: alert Slack
FAQ
Bisogna caricare i menù su ogni piattaforma? No, il master record + fan-out automatizzano tutto.
Chi ha priorità in una race? FIFO per timestamp; il perdente riceve 422.
Il cron è manuale? No, orario su Workers con alert Slack.
Ti è stato utile? Condividilo.
Articoli correlati
Cos'è un menù QR? La guida completa per i ristoranti
Un menù QR permette ai clienti di accedere alla tua carta istantaneamente dallo …
Dal menù cartaceo al menù QR digitale: guida passo passo
Vuoi adottare i menù QR ma non sai da dove iniziare? Questa guida copre fotograf…
Menu QR geolocalizzati: servire lingue diverse in base all'IP del visitatore
Come un resort da 180 coperti ad Antalya instrada lo stesso QR a menu turchi, te…