İçeriğe geç
Balkan Tecnologia

Sistemleriniz arasında kuyruklar, webhook'lar ve olaylar

Sistemler arasındaki eşzamansız veri alışverişini kuruyoruz: yeniden deneyen ve çift işlemeyi önleyen kuyruklar, webhook'lar, olaylar; başarısız olanı görüp yeniden işleyebileceğiniz bir yer.

İki taş bloğun pirinç halkalarından geçen nane yeşili iplik.

Kimin için

Sistemleri webhook'lar ve doğrudan çağrılarla konuşan, biri çöktüğünde veri kaybeden şirketler için.

Neyi çözer

  • Sistem kapalıyken gelen bir webhook kayboldu.
  • Pix ödemesinin bildirimi iki kez geliyor, sipariş iki kez ödenmiş görünüyor.
  • Yavaş bir sistem ötekileri de kilitliyor, çünkü hepsi onun cevabını bekliyor.
  • Bir şey bozulduğunda hangi mesajların yolda kaldığını kimse bilmiyor.

Ne yapıyoruz

Olay kataloğu
Hangi olayların olduğu, kimin yayımladığı, kimin tükettiği ve her birinin biçimi.
Webhook karşılama
Webhook hemen kabul edilir, doğrulanır ve kuyruğa alınır; işlenmesi ardından gelir.
Artan aralıklarla yeniden deneme
Geçici hatalar giderek uzayan aralıklarla yeniden denenir.
Çift işleme denetimi
Aynı mesaj iki kez işlense de sonuç aynı kalır, etki iki kez oluşmaz.
Hatalı mesaj kuyruğu
Denemelerden sonra hâlâ başarısız olan mesaj, nedeniyle birlikte incelenmek üzere ayrılır.
Yeniden işleme
Hatalı mesajlar düzeltmeden sonra tek tek ya da toplu olarak yeniden gönderilebilir.
Kuyruk izleme
Kuyruk boyu, gecikme ve hatalar bir panoda görünür, eşik aşılınca otomatik alarm gelir.

Neler teslim edilir

  • Her mesajın biçimini ve sürümünü gösteren olay kataloğu
  • Yeniden deneme ve çift işleme denetimiyle canlıda çalışan kuyruklar ve tüketiciler
  • Hatalı mesaj kuyruğu ve yeniden işleme aracı
  • Kuyruk gecikmesi ve hataları için pano ve alarmlar
  • Kesinti, gecikme ve tekrarlanan mesajı taklit eden testler

Nasıl ilerliyoruz

  1. Haritalama

    Bugün hangi sistemlerin nasıl mesajlaştığı ve daha önce nerede kayıp yaşandığı.

  2. Tasarım

    Olaylar, biçimler, kuyruklar ve yeniden deneme kuralları belirlenip yazılır.

  3. Uygulama

    Kuyruklar, tüketiciler ve webhook karşılama; hata testleriyle birlikte.

  4. Paralel çalışma

    Yeni akış, mesaj kaybetmediğini gösterene kadar eskisiyle yan yana çalışır.

  5. İşletim

    Pano, alarmlar ve ekibinizin mesajları yeniden işlemesi için bir çalışma kılavuzu.

Teknoloji örnekleri

  • RabbitMQ
  • Kafka
  • Amazon SQS
  • Google Cloud Pub/Sub
  • AsyncAPI
  • CloudEvents
  • Webhooks

İlgili hizmetler

Sık sorulan sorular

RabbitMQ mu, Kafka mı, bulutun kuyruğu mu?

Hacme, mesajların ne kadar süre saklanacağına ve kimin işleteceğine bağlı. Bulutta yönetilen bir kuyruğun bakımı genellikle daha kolaydır.

Hiçbir mesajın kaybolmayacağından emin olabilir miyiz?

Hiçbir sistem her arızayı ortadan kaldırmaz. Biz her mesajı işlemeden önce saklar, yeniden dener ve başarısız olanı görünür tutarız; böylece hiçbir şey sessizce kaybolmaz.

Mevcut sistemlerimizi değiştirmemiz gerekir mi?

Bazen çok az: birçoğu zaten webhook gönderir ya da çağrı kabul eder. Bunun mümkün olmadığı yerde sisteme dokunmak yerine önüne bir bağdaştırıcı koyarız.

Kişisel veriler kuyruklarda açıkta mı kalıyor?

Bunu hesaba katarız: mesajlar yalnız gerekeni taşır, kuyruklara ve hata kayıtlarına erişim sınırlıdır.

Balkan'a yazın

Projeniz için yazın