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.

D
Dasvio Ekibi
Ürün ve operasyon
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 yaklaşım çoğunlukla doğru çalışır — ve kalan hata payı, sipariş hacmi büyüdükçe kabul edilemez hale gelir. 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+
ilk denemede başarılı senkron hedefi
< 40 sn
hedef medyan yayılma süresi
3
otomatik retry denemesi
0
hedef: manuel katalog düzeltmesi

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 taleplerinde çözüm süresini asıl kısaltan da bu ekran.

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.

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