Skip to content
Berktuğ Berke Ateş
Berktuğ Berke Ateş

Yazılım Mühendisi

Blog

Ürün Backend'leri için Olay Güdümlü Tasarım

· 8 dk okuma

Olaylar ürünlere iş akışlarını ölçeklendirmede yardımcı olur—onları yangın hortumu değil sözleşme olarak ele alırsanız.

İş hakkında gerçekler yayınlayın

Yararlı olaylar anlamlı bir şeyin olduğunu anlatır: sipariş verildi, kayıt işlendi, üyelik yükseltildi. Veritabanı satırlarının dökümü veya kılık değiştirmiş uzaktan yordam çağrısı değildirler. Olayları geçmiş zamanda adlandırın ve tüketicilerin geveze geri çağrılar olmadan hareket edebilmesi için yeterli bağlam ekleyin.

Yükü sürümleyin. Tüketiciler farklı takvimlerde evrilir ve kırıcı bir alan yeniden adlandırması ekipler arasında sessiz başarısızlıklara yayılabilir.

Tüketicileri bilinçli olarak izole edin

Her tüketici belirli bir sonucu sahiplenmelidir: e-posta gönder, arama indeksini güncelle, yetkileri sağla veya analitiği bilgilendir. İlgisiz yan etkiler için tek bir dev işçi paylaşmak, daha kötü başarısızlık biçimleriyle bir monolit yeniden yaratır.

Backpressure, yeniden denemeler ve dead-letter kuyrukları tüketici başına aittir. Bildirimlerdeki zehirli bir mesaj arama indekslemeyi engellememelidir.

  • İşleyicileri varsayılan olarak idempotent yapın
  • Tekilleştirme anahtarlarıyla en az bir kez teslimatı tercih edin
  • Sıralama garantilerini dürüstçe belgelendirin
  • Üretim akışlarını yayınlama ve tüketme boyunca izleyin

Tutarlılık ödünleşimini kabul edin

Olay güdümlü sistemler sıkça eventual consistency'yi benimser. Ürün metni ve UI, bazı durumların asenkron yakaladığını kabul etmelidir. Her yan etkinin anlık olduğunu iddia etmektense işleniyor durumu göstermek daha iyidir.

Güçlü tutarlılık gerektiğinde—bakiyeler, envanter rezervasyonları, benzersiz kısıtlar—bu mantığı işlem sınırında tutun ve olayları commit'ten sonra yayınlayın.

Koreografiyi işletın

Korelasyon kimlikleri, gecikme metrikleri ve yeniden oynatma araçları olmadan olay sistemleri gizemli hale gelir. Bir hata düzeltmesinden sonra bir olay penceresini güvenle yeniden işleme yeteneği kurun. Tüketici gecikmesini kullanıcıya dönük bir güvenilirlik sinyali olarak ölçün.

Olay güdümlü tasarım, ekipler temel işlem yolunu istikrarsızlaştırmadan tüketici ekleyerek ürün davranışını genişletebildiğinde karşılığını verir.


24 Temmuz 2024 tarihinde Berktuğ Berke Ateş tarafından yayımlandı.