Olay Güdümlü Mimari Nedir?
İngilizce: Event-Driven Architecture
Yayın: · Son güncelleme:
Olay Güdümlü Mimari Nedir? Kısaca
Olay güdümlü mimari (event-driven architecture), sistemdeki bileşenlerin birbirini doğrudan çağırmak yerine "sipariş verildi" gibi olay mesajları yayınladığı ve ilgili bileşenlerin bu olayları dinleyerek tepki verdiği yazılım mimarisidir.

Olay güdümlü mimari nedir?
Olay güdümlü mimaride sistemin kalbi "olay" kavramıdır. Olay, sistemde gerçekleşmiş bir durumu anlatır: kullanıcı kaydoldu, ödeme alındı, stok bitti gibi. Bir bileşen bu olayı yayınlar, onu dinleyen diğer bileşenler kendi işini yapar.
Burada yayınlayan taraf, kimin dinlediğini bilmez. Bu gevşek bağlılık sayesinde sisteme yeni bir özellik eklemek için mevcut kodu değiştirmeniz gerekmez; yeni bir dinleyici eklemek yeterlidir.
Nasıl çalışır?
Yapıda üç temel rol bulunur. Üretici (producer) olayı oluşturur, aracı (broker) olayı taşır, tüketici (consumer) olayı alıp işler. Apache Kafka, RabbitMQ ve bulut sağlayıcılarının kuyruk servisleri sık kullanılan aracılardır. Bu düzen pub-sub modeline dayanır.
Örneğin bir online kitapçıda sipariş servisi "sipariş oluşturuldu" olayını yayınlasın. Stok servisi bu olayla kitap sayısını düşer, fatura servisi faturayı keser, e-posta servisi onay mesajı gönderir. Yarın bir sadakat puanı özelliği eklemek isterseniz yalnızca aynı olayı dinleyen yeni bir servis yazarsınız.
Zorlukları neler?
Asenkron yapı, akışı takip etmeyi zorlaştırır. Bir siparişin neden faturalanmadığını bulmak için birkaç servisin loglarına bakmanız gerekebilir. Aynı olayın iki kez gelmesi ya da sırasının karışması da olasıdır; tüketicilerin bu durumlara dayanıklı yazılması gerekir.
Anlık cevap gerektiren işlemlerde, örneğin kullanıcıya hemen "şifre yanlış" demek gereken bir girişte, klasik istek-cevap modeli daha uygundur. Birçok sistem iki yaklaşımı bir arada kullanır.
Sıkça Sorulan Sorular
Olay güdümlü mimari ile mikroservis aynı şey mi?
Hayır. Mikroservis, uygulamanın nasıl bölündüğünü anlatır. Olay güdümlü mimari ise parçaların nasıl haberleştiğini anlatır; mikroservisler sıklıkla olaylarla haberleşir ama bu zorunlu değildir.
Olay güdümlü mimaride hangi araçlar kullanılır?
Apache Kafka, RabbitMQ, Amazon SQS ve SNS, Google Pub/Sub ve Azure Service Bus yaygın örneklerdir. Seçim, mesaj hacmine ve sıralama ihtiyacına göre yapılır.