Etkinlik Sürücüleri, Bölüm 2: Olay güdümlü mimarinin yapı taşları
Bu serinin ilk kısmı, özellikle profesyonellik daha karmaşık hale geldiğinde, Crud veya Rest gibi klasik mimarilerin neden sınırlarına ulaştığını göstermiştir. Ama alternatif nedir?

Golo Roden, yerel web GmbH'nin kurucusu ve CTO'sudur. Olaylara ve hizmetlere dayalı olarak dağıtılmış mimarilere özellikle dikkat ederek web ve bulut uygulamalarının ve arıların anlayışı ve geliştirilmesi ile ilgilidir. Yol gösterici ilkesi, yazılımın gelişiminin kendi başına bir son olmaması, ancak her zaman aşağıda bir profesyonellik izlemesi gerektiğidir.
Olaylara dayanan mimariler (kısaca olaylara veya EDA'ya dayalı mimarlık) veri modeline değil, alandaki süreçlere dayanmaktadır. Başka bir kelime dağarcığına, diğer tuğlalara dayanırlar ve tamamen farklı bir sistem yapısına yol açarlar. Bu bölüm bir bakışta en önemli unsurları inceler.
Komutlar: Sistem Talimatları
Komut, bir şeyler yapma davetidir. Doğrudan göstergesi bir çağrıdır “Hadi Bu Kitap”, “Bu Adresi Bildirin” veya “Bu Miktarı Aktarın”. Komutlar neredeyse her zaman dışarıdan gelir, örneğin bir kullanıcı arayüzünden, başka bir sistemden veya otomatik bir işlemden.
Bir komutun kendisinin bir şeyin gerçekleştiğinin garantisi olmadığını, sadece bir şeyi tetikleme girişimi olduğunu belirtmek önemlidir. Etki alanı, bir komutun geçerli olup olmadığına karar verir: Sistem komuta izin verilip izin verilmediğini ve teknik koşulların karşılandığını kontrol eder.
Etkinlikler: Ne oldu
Olaylar komutların sonucudur. Komutu işlediğinizde alınan teknik kararların bir sonucu olarak kendilerini sunarlar.
Bu nedenle bir olay, geçmişte olan teknik olarak ilgili bir gerçeği açıklar. “Lütfen X yap” değil, “X oldu”. Olaylar tarafsız, tanımlayıcı ve genellikle kalıcı olarak saklanır. Sistemdeki merkezi bilgi kaynağını oluşturun.
Uygun örnekler (yukarıdaki kontroller için): “Kitap atandı”, “adres kaydedildi” veya “miktar aktarıldı”.
Olaylar sadece sistemin kendisi için değil, aynı zamanda diğerleri için de yararlıdır: diğer süreçleri başlatabilir, sistemleri bilgilendirebilir veya veri projeksiyonlarındaki değişiklikleri tetikleyebilirler.
Olay Akışları: Bireysel Nesnelerin Tarihi
Etkinlik akışı, belirli bir bağlamdaki tüm olayların, örneğin bir kullanıcı, hesap veya kitap için düzenli listesidir. Yalnızca bu nesne için tam olarak alakalı olayları içerir.
Bir nesnenin mevcut durumu bu akıştan herhangi bir zamanda yeniden yapılandırılabilir. Bu, sistemleri çok şeffaf ve anlaşılabilir hale getirir: sadece statükoyu görüyorsunuz, aynı zamanda zamanla doğduğunuz gibi.
Projeler: Sistemin sayfalarının okunması
Son olarak, projeler mevcut durumun kalıcı haritalanmasına hizmet eder: “Hangi kitabı ödünç aldı?”, “Mevcut kredi ne kadar yüksek?” Veya “İyi bilinen konutun son yeri nedir?”
Sadece olaylara dayanmaktadırlar: mevcut durum olanların geçmişi tarafından hesaplanır. Gerekli görüşlere bağlı olarak aynı anda birçok farklı projeksiyon olabilir.
Projeler genellikle bireysel uygulamalar için özel olarak özel olarak yapılır ve blog yazımından bağımsız olarak okuma erişimi için verimli bir şekilde optimize edilebilir.
Bu inşaat blokları nasıl birlikte oynar?
Bu nedenle olaylara dayalı bir sistemdeki tipik bir süreç şu gibi görünüyor:
- Bir kullanıcı bir komutu tetikler (örneğin, kullanıcı arayüzündeki bir etkileşim yoluyla).
- Sistem komutun izin verilip verilmediğini kontrol eder.
- İzin verilirse, bir veya daha fazla olay oluşturulur ve kaydedilir.
- Bu olaylar olay akışlarına akar, tazeleme projeleri mesaj Quees ile yayınlanabilir ve diğer sistemler tarafından tüketilebilir.
Sırada ne var?
Bir sonraki bölüm, bir olayın teknik bir bakış açısından ne geldiğini ve teknik detayların dikkatini dağıtmamak çok önemli olduğundan endişe duyacaktır. Olaylar kayıt olmadığı için profesyonellik dilidir.
(Mayıs)
Ne yazık ki, bu bağlantı artık geçerli değil.
Boşa harcanan eşyalara olan bağlantılar, 7 günlük daha büyükse veya çok sık çağrılmışsa gerçekleşmez.
Bu makaleyi okumak için bir Haberler+ paketine ihtiyacınız var. Şimdi yükümlülük olmadan bir hafta deneyin – yükümlülük olmadan!