Skip to content
OminaisuudetHinnoitteluKumppanitBlogiOhjeMeistäYhteystiedot
AloitaKirjaudu sisään
Takaisin blogiin
guides2026-07-216 min lukemista

Yksi varasto, kolme markkinapaikkaa: Getir + Trendyol GO + Yemeksepeti integraatio

Neljän toimipisteen döner-ketju Izmirissä pyörittää kolmea turkkilaista toimitusalustaa yhdestä menusta. thMenu master record, webhook fan-out ja D1:n atominen UPDATE.

th

thMenu Team

thmenu.com

Neljän toimipisteen döner-ketju Izmir Alsancakissa on yhdistetty samanaikaisesti Getir Yemekiin, Trendyol GO:hon ja Yemeksepetiin. Sen sijaan että ylläpitäisi kolmea erillistä menua, he käyttävät thMenuta master recordina; varaston vähennykset tapahtuvat yhdessä paikassa ja webhook fan-out päivittää kolme alustaa.

Master record -arkkitehtuuri

D1_MENU:n sarake products.stock_quantity on ainoa kanoninen lähde. Tilauksen vahvistuksessa: UPDATE products SET stock_quantity = stock_quantity - 1 WHERE id = ? AND stock_quantity > 0. 0 riviä = loppu.

Onnistuessa tapahtuma siirtyy Cloudflare Queueen. Kolme workeria patchaavat rinnakkain API:ja. Keskimääräinen fan-out-viive 340 ms.

Konfliktien ratkaisu

Skenaario: 5 lahmacun varastossa. Samalla sekunnilla saapuu 5 tilausta kolmelta alustalta. Atominen UPDATE sarjallistaa — viimeinen löytää 0:n ja hylätään. Lopputila 0, kolme "loppu" -signaalia.

D1:llä ei ole eksplisiittisiä row lockeja mutta WHERE stock > 0 hoitaa saman roolin. Nolla over-selliä 6 kuukaudessa.

Driftin sovittaminen

Yemeksepetin webhookilla on 30 s viive, Trendyol on välitön, Getir pollaa 5 s välein. Tunnittainen cron vertaa kolmea masteriin.

  • Yemeksepeti 5, Getir 3: master 5:een, PATCH Getir
  • Master 0, alusta 2: välitön PATCH 0
  • Drift > 3: Slack-hälytys

FAQ

Pitääkö menut syöttää käsin joka alustalle? Ei, master record + fan-out automatisoivat kaiken.

Kuka saa prioriteetin race-tilanteessa? FIFO timestampin mukaan, häviäjä saa 422.

Onko cron manuaalinen? Ei, tunneittain Workersilla Slack-hälytyksellä suurelle driftille.

Oliko tästä hyötyä? Jaa se.