Event Driven Design modeli, yüksek oranda ölçeklenebilir uygulamalar üretmek için kullanılan popüler bir dağıtılmış asenkron mimari modelidir. Aynı zamanda son derece uyarlanabilir ve küçük uygulamaların yanı sıra büyük, karmaşık uygulamalar için de kullanılabilir. Olay güdümlü mimari, olayları asenkron olarak alan ve işleyen yüksek düzeyde ayrıştırılmış, tek amaçlı olay işleme bileşenlerinden oluşur.
Olayları gevşek bağlı yazılım bileşenleri ve hizmetleri arasında ileten uygulamalar veya sistemler için uygundur. Olay güdümlü bir sistem tipik olarak olay yayıcılardan (veya aracılardan), olay tüketicilerinden (veya alıcılardan) ve olay kanallarından oluşur.
Olay güdümlü sistemlerde olaylar farklı sistemlerde işlenir, atomikliği korumak çok zordur. Atomik bir işlem olarak birlikte yapılması gereken şeyler tek bir sistemin parçası olmalıdır. EDA, yatay olarak ölçeklenebilir ve bileşenler gevşek bir şekilde bağlandığından ve bağımsız olarak ölçeklenebildiğinden hataya karşı dirençlidir.
Olay odaklı mimaride en çok kullanılan dört desen var.
- Olay bildirimi
Bu modelde, bir sistem, etki alanındaki bir değişikliği diğer sistemlere bildirmek için olay mesajları gönderir. Kaynak sistem tepkiyi pek umursamaz. Genellikle bir yanıt beklemez veya bir yanıt varsa, bu doğrudan olmaz. Bu, farklı sistemler arasında düşük bağlantı sağlar.
Bu model basit ve kurulumu kolaydır, ancak olay bildiriminin çeşitli sistemlerden geçmesi durumunda hata ayıklamak ve değiştirmek zor olabilir. Bu modelde, olay minimum bilgi içerir ve bazen olayı işlerken daha fazla bilgi gönderenle iletişime geçmeleri gerekebilir.
- Olay Taşınan Durum Transferi
Bu modelde, bir olay, bir sistemin olayı işlemek için ihtiyaç duyduğu tüm ayrıntıları içerir ve her sistem, verilerin kendi kopyasını saklar. Sistem, bilgi için uzaktan arama yapmayarak gecikmeyi azaltabilir ve verilerin kendi kopyasını güncelleyebilir. Bu modelde, aynı verilerin farklı kopyaları olacak ve bu da bir noktada sistem genelinde verilerin tutarsızlığına neden olabilir.
- Etkinlik Kaynaklama
Event Sourcing EDA’da, durumdaki her değişikliği olay deposunda bir olay olarak saklıyoruz, böylece olayı gelecekte herhangi bir zamanda yeniden işleyerek sistem durumunu yeniden oluşturabiliriz. Etkinlik mağazası, gerçeğin ana kaynağı haline gelir. Bunun en iyi örneği bir sürüm kontrol sistemidir.
Olay kaynaklı sistem, sisteme güçlü bir denetim yeteneği sağlar, ancak bazen bazı harici sistemlere bağlıysa durumu yeniden oluşturmak zor olabilir.
- CQRS (Komut Sorgusu Sorumluluk Ayrımı)
Komut Sorgusu Sorumluluğu Ayrıştırma modelleri, bilgileri okumak ve yazmak için farklı veri yapıları kullanır. CQRS, olayın olmadığı sistemlerde kullanılabilir, ancak en yaygın olarak yukarıdaki modellerle kombinasyon halinde kullanılır.
Umarım açıklayıcı bir yazı olmuştur.
Yorum Yap