Event-Driven (Olay Tabanlı) Nedir?

İngilizce: Event-Driven Architecture

Event-driven mimari, sistemlerin sipariş oluştu, ödeme alındı gibi olaylara bağımsız bileşenlerle tepki vermesini sağlar.

Event-Driven Mimari Nedir?

Event-driven ya da olay tabanlı mimari, sistemlerin “sipariş oluşturuldu”, “ödeme alındı”, “stok azaldı” gibi olayları yayınlayıp diğer bileşenlerin bu olaylara bağımsız şekilde tepki vermesi üzerine kurulur. Bileşenler birbirini doğrudan çağırmak zorunda kalmaz.

Nasıl Çalışır?

Olayı üreten sistem producer, olayı alan sistem consumer olarak düşünülebilir. Arada mesaj kuyruğu, event bus, stream platformu veya webhook bulunabilir. Producer olayın gerçekleştiğini bildirir; consumer e-posta gönderebilir, stok güncelleyebilir, rapor tablosu yazabilir veya üçüncü taraf servise haber verebilir.

Bu yapı asenkron çalışır. Bu nedenle tekrar deneme, idempotency, sıra garantisi, hata kuyruğu ve gözlemlenebilirlik baştan tasarlanmalıdır. Aynı olayın iki kez işlenmesi fatura veya stok gibi alanlarda ciddi sorun yaratabilir.

Webhook ve Mesaj Kuyruğu ile İlişkisi

Webhook, bir olay olduğunda başka sisteme HTTP isteği gönderen pratik bir event-driven mekanizmadır. Mesaj kuyruğu ise olayların güvenilir şekilde sıraya alınmasını, tüketilmesini ve yeniden denenmesini sağlar.

İş Dünyasında Kullanımı

E-ticaret sipariş akışı, ödeme sonrası fatura oluşturma, CRM bildirimleri, depo entegrasyonu, IoT verisi ve SaaS bildirimleri olay tabanlı tasarımdan yararlanabilir. En büyük avantaj, yeni bir consumer ekleyerek mevcut akışı fazla bozmadan yeni yan etkiler ekleyebilmektir.