Sayfa yükleniyor
Tüm makaleler
Mühendislik2 May 202615 dk okuma

Platform entegrasyonu neden yerlerinde parçalanır (ve biz bunu nasıl düzelttik)

Getir, Trendyol ve Yemeksepeti'nin her birinin kendine özgü katalog davranışı var. Senkronizasyon motorumuzu sıfırdan yeniden yazdık; dağıtık eşleştirme konusunda öğrendiklerimizi paylaşıyoruz.

MK
Mehmet Kaya
Kurucu Mühendis
Platform entegrasyonu neden yerlerinde parçalanır (ve biz bunu nasıl düzelttik)

Entegrasyon demosunda her şey çalışır. Sorun, üçüncü ayda başlar: platformdaki bir ürün silinir, sizin tarafınızda durur; bir fiyat kampanyası bittiğinde eski fiyat geri gelmez; bir şube tatile girer ve dört platformdan üçünde hâlâ sipariş alır.

Kök neden: eşleştirmeyi kimlikle değil, isimle yapmak

İlk mimarimiz ürünleri isim benzerliğiyle eşleştiriyordu. Bu, %85 doğrulukla çalıştı — ve %15'lik hata payı, günde binlerce siparişte kabul edilemez bir rakam. Yeniden yazımın merkezinde, her platform için kalıcı bir dış kimlik (external ID) haritası tutmak vardı.

Üç platform, üç farklı gerçeklik modeli

  • Bir platform kısmi güncelleme kabul ediyor; diğeri her seferinde tam katalog istiyor.
  • Stok kapatma bir yerde ürün seviyesinde, başka yerde varyant seviyesinde çalışıyor.
  • Kampanya fiyatı bir platformda ayrı bir alan, diğerinde ana fiyatın üzerine yazılıyor.
  • Hata kodları standart değil; aynı durum üç farklı mesajla dönebiliyor.

Kuyruk, retry ve idempotency

Senkronizasyonu doğrudan HTTP çağrısı olarak yapmayı bıraktık. Her değişiklik artık bir olay olarak kuyruğa giriyor, işleyici idempotent çalışıyor ve başarısız iş üstel geri çekilmeyle yeniden deneniyor. Aynı olayın iki kez işlenmesi, sistemi bozmuyor — bu, dağıtık sistemde pazarlık edilemez bir özellik.

%99,4
ilk denemede başarılı senkron
< 40 sn
medyan yayılma süresi
3
otomatik retry denemesi
0
manuel katalog düzeltmesi / hafta

Gözlemlenebilirlik olmadan hiçbiri işe yaramaz

En büyük kazanç, motorun kendisi değil; her ürün için "şu an hangi platformda hangi durumdayım" sorusunu tek ekranda cevaplayabilmek oldu. Destek ekibinin çözüm süresi, bu ekran yayına girdikten sonra yarıya indi.

Dağıtık sistemde asıl özellik senkronizasyon değil, senkronizasyonun bozulduğunu fark edebilmektir.
MühendislikEntegrasyonlarAltyapı

Dasvio'yu restoranınızda görün.

15 dakikalık kişiselleştirilmiş bir demo planlayalım — kendi menünüz, kendi rakamlarınız üzerinden.

7/24
Türkçe destek hattı
14 gün
Ortalama kurulum süresi
%99.9
Uptime garantisi