Etkinlik arzının temelleri
Olayların arzı, etki alanı (DDD) ve CQRS tarafından yönetilen tasarıma göre sıklıkla çağrılan kalıcı veriler için bir stratejidir. Aslında, kavramlar bağımsızdır, ancak birbirini tamamlar. Etkinlik arzı nasıl çalışır?
Veri depolama genellikle ham prensibi takip eder. Bununla birlikte, burada yer alan dört süreç (“oluştur”, “okuma”, “güncelleme” ve “sil”) benzer değildir, çünkü güncelleme ve eliminasyon başkalarının aksine. Bu nedenle, ortadan kaldırmak yerine, “Isderata” bayrağı ile bir güncelleme sıklıkla kullanılır. Ancak güncelleme de yıkıcı bir şekilde davranıyor çünkü daha önce saklanan veriler kayboluyor.
Bu nedenle, olayların arzının temel fikri, güncellemeler kullanmadan yapmak ve oluşturmak ve okumak için yalnızca zorlayıcı olmayan süreçleri ortadan kaldırmak ve kullanmaktır. Herhangi bir teknik değişiklik veya her teknik süreç, sürekli büyüyen bir listede yeni bir öğe olarak Crea Crea ile etkinliklerin tedarikine dahil edilir, yalnızca ekler için çok sayıda kayıt. Bu ürün asla değiştirilmeyecek veya hatta kaldırılmayacak.
Yolda, zamanla giderek daha fazla veri toplanırlar, raporların ve verilerin analizi için ideal olarak ideal olan bir kronoloji ve denetim kaydı alırlar. Ayrıca geçmişin yeniden üretilmesinin bilgi edinmesine ve geleceği öğrenmesine izin verirler. Teknik süreçlere yapışmaya dikkat ederek, olayların arzı, oldukça teknik yönelimi nedeniyle genellikle bir antipactter olarak kabul edilen Crud'dan çok daha profesyoneldir.
Olayların tedariki mevcut durumu kurtarmaz, ancak şu anda zaman içinde getirilen bireysel pasajlar. Bu şekilde çalışan bir veritabanına “Etkinlik Mağazası” denir.
Mevcut durumu okumak, olayların tedariki sırasında çok yazılmış “tekrar” i sağlar. Bir nesne için tutulan tüm öğeler tekrar davet edilir ve toplanır. Bununla birlikte, bu sadece mevcut durum için değil, aynı zamanda dün, dün veya geçmişin başka bir zamanı için de mümkündür.
Önerilen editoryal içerik
Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.
YouTube videosu her zaman yüklenir
YouTube videosu artık yüklüyor
Olayların arzı nedir?
Etkinlik kaynaklarının dezavantajları
Bu nedenle olayların arzı, bir denetim kaydı sunan geçmiş verileri toplayan daha profesyonel bir prosedür sunar, raporların ve verilerin analizi için mükemmel bir temeldir ve geçmişin temsili için ilk temel olarak uygundur. Bunlar Crud'a kıyasla çeşitli avantajlardır, ancak dezavantajlar nerede?
Çözümlerin olduğu olayların arzı ile ilgili beş temel zorluk vardır. İlk zorluk, tekrar oynamanın büyüyen doğrusal çabasıdır: ne kadar çok ses yüklenmeli ve toplanmalıdır, o kadar uzun bir tekrar alır. Bu, düzenli aralıklarla da tutulan bu tür “anlık” çağrılarla çözülür.
- Bunun temeli, bir tekrarın her zaman deterministik olduğu farkındalığıdır, çünkü etkinlik mağazasında depolanan öğeler artık değişmeyecektir ve daha fazla öğeyi takip ettiklerine bakılmaksızın X zamanında bir anlık görüntü için bile önemli değildir. Yolda, bir tekrar her zaman sıfırdan başlamamalıdır. Bunun yerine, son anlık tarafından eklenen söylentileri okumak ve toplamak yeterlidir.
- İkinci zorluk, bir etkinlik mağazasının büyüyen bellek gereksinimidir, ancak aynı zamanda depolama alanının neredeyse hiçbir şeye mal olmadığı belirtilmelidir. Buna ek olarak, bir tekrar uygulanabilecek bir anlık görüntü meydana gelse bile eski sesler artık talep etmiyor.
- Üçüncü zorluk, mevcut durumu sadece bir tane değil, tüm veri kayıtlarından yüklemektir. Bu durumda, hızlı bir şekilde çok karmaşık hale gelen veri kaydı için bir tekrar yapılmalıdır. Bu sorun anlık görüntülerle de çözülebilir, bu nedenle son öğeyi ekledikten sonra yeni bir anlık görüntü yazılmalıdır.
- Dördüncü zorluk, başlangıçta zor görünen GDPR'ye saygı göstermektir, çünkü olayların arzı, depolanan verilerin değiştirilmesi veya hatta silinmesi için tasarlanmamıştır. Bununla birlikte, bu sorun kişisel verilerin şifrelemesi veya uzatılması ile çözülebilir, bu nedenle prosedür bireysel ihtiyaçlara dayanmalıdır.
- Beşinci ve son zorluk, teknik ve profesyonel olarak ele alınabilen zaman içindeki versiyonun sesleridir. Teknik yaklaşım hızla anlamı özellikle yüksek olmayan yeni versiyonlara yol açar – bu nedenle teknik olan genellikle tercih edilir. Bununla birlikte, Seslerin versiyonu, olayların tedarikindeki en büyük ve en tatsız zorluklardan biridir.
Önerilen editoryal içerik
Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.
YouTube videosu her zaman yüklenir
YouTube videosu artık yüklüyor
Etkinlik kaynaklarının dezavantajları
Eventus Etkinlik Kaynaklarına Karşı Crud
Crud veya olay arzını kullanma seçeneği ile karşı karşıya kalırsa, bahsedilen avantajlar ve dezavantajlar kararda size yardımcı olacaktır. Varyasyonların basit bir izlenebilirliği gerekiyorsa, olayların temini özellikle uygundur. Genel olarak tarihsel verilere veya özellikle bir denetim kaydı ihtiyacı, olayların arzı iyi bir seçim olduğunda iyi göstergelerdir.
Buna ek olarak, olayların arzı, verilerdeki değişiklikler durumunda daha düşük bir çatışma potansiyeline yol açar, çünkü yazılı delta sadece kısmi veriler içerir: Bir etkinlik dükkanındaki iki madde, ancak verileri açısından kendilerini aynı anda sunarlarsa ve pratikte daha az sıklıkta bir vaka olarak çatışırlar.
Bununla birlikte, Crud'un da avantajları vardır: ne anlambilim ne de profesyonellik yoksa, olayların arzı avantajlarını oynayamaz. Bu yönler hiçbir şeyden türetmez, ancak sorunun doğasına zaten sabitlenmelidir. Eğer öyleyse, Crud genellikle doğru seçimi temsil eder. Hiçbir uzman mantığın gerçekleştirilmediği ham verilerin performans belleği bile CRUD ile iyidir.
Crud ayrıca, kopyaları izleme ve benzersizliği garanti etme konusundaki üstünlüğünü de gösterir. Olayların tedariki önemli ölçüde daha fazla çaba gerektirir. Bu nedenle, pratikte CRUD ve olayların arzının en teknik yönler için CRUD ile birleştirilmesi tavsiye edilir, ancak olayların arzı profesyonellik için kullanılır.
Önerilen editoryal içerik
Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.
YouTube videosu her zaman yüklenir
YouTube videosu artık yüklüyor
Eventus Etkinlik Kaynaklarına Karşı Crud
Olayların tedariki için hangi veritabanı?
Olayların kökenini yönetmeye karar verdiğiniz anda, uygun bir veritabanı gereklidir. İlk bakışta, gereksinimler düşüktür, çünkü “ek” ve “seç” desteği artık gerekli değildir. Ayrıntılı eklemler, vergilendirilebilir ifade (CTE) veya diğer gelişmiş SQL yapıları yoktur. En fazla işlem desteği, sesleri kaydederken bir ya da hiç eşdeğer eşleştirebilmek için hala alakalıdır.
Bununla birlikte, ilk bakışta, SQL veritabanları olayların temini için iyi bir seçim gibi görünmüyor, çünkü prensipte bir etkinlik mağazasının tüm öğeleri ortak bir yapıya sahip, ancak uzman verilerin yapısı uygulamadan farklı. Aslında, bir etkinlik dükkanı bu yapıyı asla değerlendirmemelidir, bu yüzden teknik verileri kaydetmek için bir blob veya json alanı tamamen yeterlidir. Bu nedenle, SQL veritabanları bile mükemmeldir.
NOSQL veritabanları (MongoDB gibi belgelerin veritabanlarının bağlamda ilginç olduğu) bu noktada bir avantaja sahiptir, çünkü bunlar şemalarda çalışırlar ve bu nedenle farklı JSON formatlarını işlemek için tasarlanmıştır. Bununla birlikte, genellikle asit kriterlerinin (atomiklik, tutarlılık, izolasyon, süre) ve işlem desteğinin uygulanmasının eksikliği vardır. Ayrıca sürüm 4'ten asit asit ile uyumlu işlemler sunan MongoDB'de, işlevsellik daha aşağı yönde bir düşünce gibi görünüyor.
SQL ve NENA veritabanlarına ek olarak, 2010 yılında “CQRS” (Komut Sorgusu için Sorumluluk Ayrılması) terimini modelleyen Greg Young'ın EventStoldb gibi özel bir yazılım kullanmak mümkündür. Bu sistemler çoğu uygulama için çok karmaşıktır, şirketlerde zaten var olan sistemlere karşılık gelmez ve aynı zamanda sahiplerdir. Bu nedenle taahhüdünüz dikkatle dikkate alınmalıdır.
Son olarak, bunu yapmak için kullanılma olasılığı vardır: tipik bir örnek, bir tür etkinlik dükkanı olarak kullanılabilen Apache Kafka Mesajlarının komisyoncusudur. Kafka'nın bir dükkan olarak kullanılması kutuplaşmıştır: destekçiler en azından bu fikri reddeden büyük bir geliştiriciyle karşı karşıya. Bu nedenle, bunu yalnızca özel bir özel durumunuz varsa yapmalısınız.
Genel olarak, çoğu sistem, çoğu şirketin zaten bu sistemlerle deneyime sahip olduğu için, klasik bir ilişkisel SQL veritabanı veya alternatif olarak MongoDB gibi bir veritabanı nena kullanımı ile iyi bir şekilde sunulmalıdır.
Önerilen editoryal içerik
Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.
YouTube videosu her zaman yüklenir
YouTube videosu artık yüklüyor
Olayların tedariki için hangi veritabanı?
DDD ve olayların tedarikini birleştirir
Başlangıçta belirtildiği gibi, olayların tedariki genellikle etki alanı (DDD) tarafından yönetilen tasarıma göre çağrılır. Ortak bir terim olarak, “olay” kelimesi her iki kavramda da zaten adda olan olayla birlikte bulunur, DDD'de bunu SO -CONDLED “Alan Olayları” ile ilgili olarak bulabilirsiniz.
Her iki durumda da, olaylar (veya etki alanı olayları) geçmişte gerçekte meydana gelen profesyonel olarak ilgili olayları tanımlar ve bu nedenle artık boyamamış yapılamaz, ancak en iyi ihtimalle bir karşı işlem ile telafi edilebilir. Prensip olarak, her iki dünyada da aynı kavramdır.
Etki alanı olayları genellikle komutların sonucu olduğundan, bu tahakküm olaylarını bir etkinlik mağazasında söylentiler olarak koymak mantıklıdır. Bu nedenle bir tekrar, daha fazla komutun geliştirilmesinin temeli olan istenen agreganın koşullarını geri yüklemeye hizmet eder. Bu fikir, genellikle tek bir ses akışı olduğu için olayların tedarikine iyi uyum sağlar, ancak DDD ile gruplar halinde özetlenen birçok küçük olanı sadece agregatlardır.
Önerilen editoryal içerik
Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.
YouTube videosu her zaman yüklenir
YouTube videosu artık yüklüyor
DDD ve olayların tedarikini birleştirir
Çözüm
Olayların tedariki, kalıcı veriler için ilginç ve ilginç bir kavramdır. Yaklaşım, şimdiki ve geçmişin verilerinin profesyonel değerlendirmesiyle ilgilenen tüm senaryolarda avantajlarını göstermektedir. Olayların arzı, modül verileri gibi tamamen teknik verilerin dosyalanması veya kopyalar veya benzersizlik gibi verilerle ilgili teknik yönlerin belirlenmesi söz konusu olduğunda daha az uygundur.
Bu nedenle, olayların arzı çiğin yerine geçmez, tıpkı Crud'un olayların yerini almadığı gibi. Bunun yerine, her iki kavram da genellikle birbirini tamamlar, böylece duruma bağlı olarak hangi yaklaşımı yapmak istediğinize karar verebilirsiniz. Sonunda en çok ne kullandığınızdan bağımsız olarak, sadece ufkunuzu genişletmek olsa bile, her durumda olayların tedarikini bilmek avantajlıdır.
()