Skip to content
FunkciókÁrakPartnerekBlogSúgóRólunkKapcsolat
KezdésBejelentkezés
Vissza a Bloghoz
guides2026-07-216 perc olvasás

Egy készlet, három piactér: Getir + Trendyol GO + Yemeksepeti integráció

Egy 4 fiókos izmiri döner lánc három török kiszállítási platformot kezel egyetlen menüből. thMenu master record, webhook fan-out és D1 atomi UPDATE.

th

thMenu Team

thmenu.com

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.