Olay Odaklı Mimari Nedir ?

Emre savaş
2 min readMar 3, 2023

(Event Driven Architecture)

Olay odaklı mimari, olayların üretimini ve tüketimini destekleyen bir yazılım mimarisi paradigmasıdır . Bu bölümde olay odaklı mimari nedir, nerede kullanılır ve avantajları nelerdir gibi konuları açıkladık. İlerleyen zamanda kod ile beraber örnek yaparak mimariyi oluşturacağız.

Olay Odaklı Mimari

Olay Nedir ?

Bir olayın meydana geldiğini bildirmek için bir nesne tarafından gönderilen bir bildirimdir. Olayı oluşturan sınıfa producer, bildirim alan sınıfa da subscriber adı verilir. Bir producer bir olayı başlatır, bildirimi almak isteyen consumer da olaya bağlı olarak yaşamını devam ettirir.

İşte olaylardan bazı örnekler:

  • Web uygulamanızla hesap oluşturan yeni bir kullanıcı
  • Hız sınırlama eşiğini aştığı için API ağ geçidiniz tarafından reddedilen bir HTTP isteği
  • Bir kaynağı silmek için veritabanına bir sorgu gönderen bir web sunucusu
  • Anahtar/değer deposuna erişmeye çalışan bir API sunucusu tarafından başarısız bir bağlantı girişimi

Neden kullanmalıyız ?

  • Yayıncı ve abone bileşenleri birbirinden ayrılmıştır.
  • İletişim mantığı ile iş mantığını birbirinden ayırdığı için ölçeklenebilirlik açısından da avantajlıdır.
  • Birden fazla abone ve yayıncı kullanıldığında yönetimi daha kolay oluyor.
  • Noktadan noktaya entegrasyon yok. Sisteme yeni tüketiciler eklemek kolaydır.
  • Üreticiler ve tüketiciler birbirinden ayrılmıştır.
  • Noktadan noktaya entegrasyon yok. Sisteme yeni tüketiciler eklemek kolaydır.
  • Tüketiciler olaylara geldikleri anda anında yanıt verebilirler.
  • Son derece ölçeklenebilir ve dağıtılabilir.
  • Alt sistemler, olay akışının bağımsız görünümlerine sahiptir.

Nerede kullanmalıyım ?

Yayıncı ve abone sistemlerinin birbirine bağımlılığının azaltılmasının istendiği dağınık ve ölçeklenebilir sistemlerde servis odaklı mimariye tamamlayıcı olarak kullanılır. Birden çok alt sistem aynı veriyi kullanırken kullanabiliriz. Alt sistemlerin veriyi kullanırken eş zamanlı kullanmasını istediğimizde kullanabiliriz.

Örneğin finansal teknolojide çeşitli ürünlerin piyasalarının takibinde olay odaklı mimari kullanılabilir. Bunlardan bazıları otomatik emirler vermek, verileri bir arayüzde sunmak, çeşitli yöntemlerle veri analizi gerçekleştirmek olabilir. Olay odaklı mimaride aboneler ve üreticiler birbirinden ayrıldığı için abonelerin veriyle ne yaptığı verinin üreticisini etkilemez.

Dezavantajları neler ?

Gerçek zamanlı IoT cihazlarında veri kaybı, bağlantı kopması gibi durumlarda veri doğru işlenmeyebilir ve yanlış sonuçlar elde edilebilir. Bu mimaride veri bütünlüğü ciddi bir sorun olarak karşımıza çıkar.
Verilerin sadece bir kere veya sıralı bir şekilde işlenmesi gereken durumlarda başka mimariler tercih edilebilir.
Bankacılık uygulamalarındaki transfer işlemleri buna örnek olarak verilebilir.

--

--