Sektörden Haberler

“Idempotent Consumer” Nedir?

30 Mart 2026 Pazartesi


Idempotent Consumer, bir mesajın birden fazla kez işlenmesi durumunda bile sistem durumunun değişmemesini garanti eden bir yaklaşımdır. Dağıtık sistemlerde “at-least-once delivery” yaygın olduğu için aynı mesajın tekrar gelmesi normaldir. İdempotent tüketici, bu tekrarları güvenli şekilde tolere eder.

Temel fikir, tüketicinin her mesajı benzersiz bir kimlikle (message ID / event ID) işlemesi ve daha önce işlenmiş olanları tekrar etmemesidir. Bu genellikle bir “processed_messages” tablosu veya cache (ör. Redis) ile sağlanır. Mesaj işlenmeden önce ID kontrol edilir; daha önce işlendiği tespit edilirse işlem atlanır veya önceki sonuç döndürülür.

Bu yaklaşım özellikle ödeme, sipariş, envanter gibi kritik iş akışlarında zorunludur. Örneğin aynı “ödeme alındı” mesajı iki kez işlenirse, kullanıcıdan iki kez tahsilat yapılabilir. İdempotent tüketici, bu tür hataları engelleyerek veri tutarlılığını korur.

Kısacası Idempotent Consumer, mesajlaşma sistemlerinde tekrarları bir hata değil, beklenen bir durum olarak ele alır. Sistem tasarımını buna göre şekillendirir ve böylece dağıtık mimarilerde güvenilirliği önemli ölçüde artırır.

 

İdempotent İşleme Akışı

[Message Queue]

      │

      ▼

[Consumer]

      │

      ▼

[Message ID kontrol edilir]

      │

 ┌────┴────┐

 │         │

Yeni     Daha önce işlendi

 │         │

 ▼         ▼

[İşle]   [Atla / Önceki sonucu dön]

 │

 ▼

[Processed Messages Store]