Une chaîne de döner avec 4 succursales à Izmir Alsancak est connectée simultanément à Getir Yemek, Trendyol GO et Yemeksepeti. Au lieu de maintenir trois menus, ils utilisent thMenu comme master record ; les décréments de stock se font à un seul endroit et un fan-out webhook met à jour les trois plateformes.
Architecture master record
La colonne products.stock_quantity dans D1_MENU est la source canonique unique. À la confirmation d'une commande : UPDATE products SET stock_quantity = stock_quantity - 1 WHERE id = ? AND stock_quantity > 0. 0 ligne affectée = rupture.
Sur succès, un événement part vers Cloudflare Queue. Trois workers patchent en parallèle les API. Latence moyenne 340 ms.
Résolution de conflits
Scénario : 5 lahmacun en stock. À la même seconde, 5 commandes arrivent depuis trois plateformes. L'UPDATE atomique sérialise — la dernière trouve stock=0 et est rejetée. Final 0, trois signaux "rupture" sortent.
D1 n'a pas de verrous de ligne mais WHERE stock > 0 joue le même rôle. Zéro vente excédentaire en 6 mois.
Réconciliation des écarts
Le webhook Yemeksepeti a 30 s de délai, Trendyol est immédiat, Getir poll toutes les 5 s. Un cron horaire compare les trois au master.
- Yemeksepeti 5, Getir 3 : master à 5, PATCH Getir
- Master 0, plateforme 2 : PATCH 0 immédiat
- Écart > 3 : alerte Slack
FAQ
Doit-on saisir les menus manuellement sur chaque plateforme ? Non, master record + fan-out automatisent tout.
Qui a la priorité en cas de race ? FIFO par timestamp, le perdant obtient 422.
Le cron est-il automatique ? Oui, horaire avec alerte Slack au-delà du seuil.
Cet article vous a été utile ? Partagez-le.
Articles connexes
Qu'est-ce qu'un menu QR ? Le guide complet pour les restaurants
Un menu QR permet à vos clients d'accéder instantanément à votre carte depuis le…
Passer du menu papier au menu QR numérique : guide étape par étape
Vous souhaitez adopter les menus QR mais ne savez pas par où commencer ? Ce guid…
Menus QR géo-ciblés : servir des langues différentes selon l'IP du visiteur
Comment un resort de 180 couverts à Antalya route le même QR vers des menus turc…