CQRS to skrót od Command Query Responsibility Segregation. Jak sama nazwa wskazuje, podzieliliśmy aplikację na dwie części: po stronie poleceń i po stronie zapytania. Teraz ktoś zapyta, co oznaczają „polecenie” i „zapytanie”?
W tradycyjnych systemach zarządzania danymi zarówno polecenia, jak i zapytania są wykonywane względem tego samego zestawu jednostek, które mają jedną reprezentację lub widok. Operacje CRUD są stosowane do pojedynczego magazynu danych i uzyskuje się dostęp do tej samej jednostki lub obiektu w celu obsługi operacji odczytu i zapisu.
Występują problemy z pojedynczym widokiem dla obu stron do odczytu i zapisu:
Wzorzec CQRS zakłada, że metoda powinna albo zmienić stan jednostki, albo zwrócić wynik, ale nie oba. Oddzielenie modeli dla strony odczytu i zapisu zmniejsza złożoność związaną z posiadaniem jednego widoku dla obu stron.
CQRS jest używany głównie w połączeniu z pozyskiwaniem zdarzeń. Model strony zapisu systemu opartego na CQRS obsługuje utrwalanie zdarzeń, działając jako źródło informacji dla strony odczytu. Odczytany model systemu zapewnia zmaterializowane widoki danych, zazwyczaj w postaci wysoce zdenormalizowanych widoków.
Poniższy diagram przedstawia szczegóły systemu opartego na CQRS:
Jeśli korzystasz z architektury mikrousług do tworzenia aplikacji i chcesz wykorzystać zalety usługi Event Sourcing i CQRS, dostępne są różne struktury i platformy do tworzenia asynchronicznych mikrousług.
Eventuate jest jednym z takich przykładów. Jest to platforma aplikacji składająca się z dwóch produktów, z których jednym jest Eventuate ES , struktura mikrousług , która implementuje model programowania i trwałości oparty na źródle zdarzeń.
Lagom to platforma mikrousługowa typu open source zbudowana na bazie struktur Akka i Play. Lagom Persistence wykorzystuje Event Sourcing i CQRS, aby pomóc osiągnąć architekturę odsprzęgniętą.
Przykłady z życia wzięte, jak Lagom radzi sobie z pozyskiwaniem zdarzeń i CQRS, można znaleźć na następujących blogach:
Miłego blogowania!
Wprowadzenie Apache Kafka to rozproszona platforma przesyłania strumieniowego typu open source, która obsługuje przesyłanie strumieniowe danych w czasie rzeczywistym na dużą skalę, o dużej przepustowości i odporności na błędy. System opiera się na modelu publikowania-subskrybowania, w którym producenci publikują wiadomości w tematach, a konsumenci subskrybują te tematy, aby konsumować wiadomości.
Dla nas, tutaj, w południowym Ontario, a konkretnie w naszym własnym mikroklimacie, jest to losowanie między przybyciem niektórych ptaków a pojawieniem się jednej z dwóch kwitnących wiosną roślin. Miodówka i Bloodroot.
Przejście do nowej kariery może być niezwykle trudne, jeśli spróbujesz zrobić to sam. Ważne jest, aby znaleźć odpowiedzialnych partnerów, którzy są na tym samym poziomie uczenia się co ty, którzy mają podobne cele, wytrwałość i motywację.
To, co stare, jest teraz znowu nowe, a to, co kiedyś było lśniącą, błyszczącą rzeczą, teraz wydaje się nudne. Nie mówię o dżinsach JNCO, które powróciły wśród fajnych dzieciaków w śródmieściu wraz z innymi modami późnych lat 90.
Możesz być śledczym OSINT, graczem CTF lub po prostu kimś, kto odbiera połączenia spamowe. Ktoś, kto próbuje zweryfikować numer, który widziałeś w reklamie.
Jeśli chcemy dalej prosperować na tej planecie, będziemy musieli prowadzić niebezpieczne rozmowy. Takie, które rzucają wyzwanie temu, co zrobiliśmy, co robimy i co obecnie zamierzamy robić (lub planujemy robić).