İçeriğe atla
ÖzelliklerFiyatlandırmaİş OrtaklığıBlogYardımHakkımızdaİletişim
BaşlaGiriş Yap
Bloga Dön
guides2026-07-217 dk okuma

Getir Yemek + Trendyol GO + Yemeksepeti: Tek Stok, Üç Platform Entegrasyonu

İzmir Alsancak'taki 4 şubeli döner zinciri üç platforma birden bağlı tek menüden çalışıyor. thMenu master record, webhook fan-out ve D1 atomic UPDATE ile race condition çözümü.

th

thMenu Team

thmenu.com

İzmir Alsancak'taki 4 şubeli bir döner zinciri Getir Yemek, Trendyol GO ve Yemeksepeti'ne aynı anda bağlı. Üç platformun her birinde ayrı menü tutmak yerine thMenu'yu master record olarak kullanıyorlar; stok düşümleri tek yerden yapılıyor, webhook fan-out üç platforma birden update gönderiyor.

Master Record ve Webhook Fan-Out Mimarisi

thMenu D1_MENU'da products.stock_quantity tek canonical kaynak. Mutfak siparişi onayladığında D1 atomic UPDATE: UPDATE products SET stock_quantity = stock_quantity - 1 WHERE id = ? AND stock_quantity > 0. Bu satır 0 satır etkilerse stok yok demektir — over-sell engellenir.

Update başarılı olduğunda Cloudflare Queue'ya bir event push edilir: {product_id, new_stock, platforms: ['getir','trendyol','yemeksepeti']}. Üç worker paralelde her platformun API'ına PATCH atar. Ortalama fan-out süresi 340ms.

Conflict Resolution: Üç Platform Aynı Anda Sipariş Aldığında

Senaryo: 5 lahmacun stokta. Yemeksepeti'nden 2, Getir'den 2, Trendyol'dan 1 sipariş aynı saniye geliyor. D1 atomic UPDATE her birini sıraya sokar — son sipariş 0 stokta kalır, kalanı reject. Master record final state: 0. Üç platforma "out of stock" sinyali fan-out edilir, hiç over-sell olmaz.

Race condition'ın klasik çözümü row lock — D1'de yok ama atomic UPDATE ... WHERE stock > 0 aynı işi görür. Affected row count 0 ise reject; başarılıysa devam. İlk 6 ay sıfır over-sell vakası.

Platform Sapmaları ve Reconciliation

Her platformun API'ı farklı: Yemeksepeti webhook'u 30sn delay'li, Trendyol immediate, Getir 5sn polling tabanlı. Sapma olursa saatte bir reconcile cron üç platformdan stok çekip master ile karşılaştırır.

  • Yemeksepeti 5, Getir 3 raporluyorsa: master 5'e set, Getir'e PATCH ile düzelt
  • Master 0 ama platform 2 gösteriyorsa: platform'a immediate PATCH 0
  • Drift > 3 ürün: Slack alert + manuel inceleme tetikle

FAQ

Üç platforma manuel menü girmekten nasıl kurtuluruz? thMenu master record + webhook fan-out ile fiyat/stok/yeni ürün değişikliği tek yerden yapılır, otomatik üçüne dağılır.

Race condition'da kim öncelikli? D1'in atomic UPDATE'i FIFO çalışır — siparişler timestamp sırasına göre işlenir, fazlası 422 alır.

Reconciliation cron'u manuel mü tetiklenir? Hayır, Cloudflare Workers cron'da saatlik otomatik. Drift > 3 olursa Slack webhook ile operasyon ekibine alert gider.

Faydalı buldunuz mu? Paylaşın.