Cześć, jako że aktualnie piszę aplikację na boku w której wykorzystuje CQRS i Event Sourcing chciałbym podzielić się z pewnym problemem który zabrał mi trochę czasu, zanim znalazłem rozwiązanie i zrozumiałem w czym tkwił problem. Może komuś innemu zaoszczędzi to trochę czasu, lub po prostu post ten będzie dobrą okazją by dowiedzieć się czegoś nowego.Background sytuacji W aplikacji, w jednym z...
Sztuka programowania 2201 dni, 14 godzin, 4 minuty temu 99 źrodło rozwiń
The CQRS/CQS pattern works great, I immediately found a lot of benefits. It helps me to enforce separation of concerns, single responsibility and consistency in my codebase, as well as eliminate all that AOP magic with restoring full control over the code execution. Unfortunately, there is also a boring side of implementing CQRS - THE TYPING.
W poprzednim wpisie dosyć obszernie przedstawiłem ogólny koncept oraz implementację zapisu danych w aplikacji DShop, która opiera się na architekturze mikroserwisowej oraz wzorcu CQRS. W tym wpisie zajmiemy się drugim flow przepływu danych w aplikacji tj. ich odczytem. Zaczynajmy! Ogólny zarys podejścia Przed omówieniem kodu znów pozwolę sobie na uprzednią prezentację koncepcji posługując się prostym diagramem: Całe flow rozpoczyna się oczywiście od otrzymania żądania HTTP, które w swoim URI ...
Architektura 2242 dni, 15 godzin, 10 minut temu 204 źrodło rozwiń
Ostatnimi czasy na blogu było dosyć cicho, ale wynika to z dwóch rzeczy. Po pierwsze zrobiłem sobię przerwę wakacyjną (która przyznam szczerze rozciągnęła się nieco w czasie), a po drugie aplikacja DShop zmieniła się mocno pod kontem infrastrukturalnym, dlatego pozwoliłem sobie wstrzymać serię o mikroseriwach, aby nie doszło do sytuacji, w której prezentowany w poście kod staje się po chwili nieaktualny. Tyle słowem wstępu. W jednym z ostatnich wpisów przedstawiłem czym jest, a czym nie jest wzorzec CQR...
Architektura 2255 dni, 14 godzin, 56 minut temu 227 źrodło rozwiń
Architektura 2264 dni, 15 godzin, 17 minut temu 239 źrodło rozwiń
Ten wpis pierwotnie miał traktować o zasadności wprowadzenia CQRS do aplikacji opertej o mikroserwisy. Jednak przed rozpoczęciem właściwej częsci artykułu chciałem, abyśmy mieli spójną definicję tego konceptu. Trochę się rozpisałem… i uznałem, że warto wynieść ten tekst do osobnej publikacji, którą łatwo będzie zalinkować w razie potrzeby. Dlaczego? W moim odczuciu wielu programistów mylnie utożsamia ten wzorzec (sic!) z jakimś wielkim molochem klasy Enteprise, wymagającym zaawansowanej infrastruktury, ...
Architektura 2310 dni, 14 godzin, 3 minuty temu 239 źrodło rozwiń
Zachęcam do zapoznania się z artykułem opisującym jak prosto jest wdrożyć CQRS do waszego projektu.
Sztuka programowania 2338 dni, 10 godzin, 1 minutę temu 144 źrodło rozwiń
I finished work on my presentation about “CQRS in 4 steps” which will be shown during Wrocław .NET meetup and KGD .NET meetup. You can find slides from my presentation on Slideshare, Moreover, there are sources on Github and I encourage you to go through the below materials.
Sztuka programowania 2444 dni, 15 godzin, 8 minut temu 390 źrodło rozwiń
The third step in CQRS journey. It covers: - Domain events - publishing and handling - Building read model synchronously - Database transactions per command / request - Recreation of the read model
Sztuka programowania 2486 dni, 14 godzin, 45 minut temu 172 źrodło rozwiń
Check my CQRS post series how to implement CQRS into your project. In this post I focused on how to implement simple read model.
Architektura 2559 dni, 15 godzin, 45 minut temu 157 źrodło rozwiń
This is a presentation how to introduce CQRS pattern to an existing application, step by step, without breaking changes and holding up the development.
Sztuka programowania 2600 dni, 16 godzin, 38 minut temu 257 źrodło rozwiń
Some guidance how you can introduce CQRS to your project, step by step.
Sztuka programowania 2628 dni, 16 godzin, 28 minut temu 271 źrodło rozwiń
Wpis, w którym próbuję przekonać siebie i innych, że ciągle jeszcze bloguję. Przedstawiam co u mnie słychać i referuję swoje postępy na moim Githubie. Event Sourcing, CQRS, Open Source to słowa klucze.
Architektura 2632 dni, 16 godzin, 33 minuty temu 150 źrodło rozwiń
Today’s post is going to shortly discuss entire architecture, I’m going to implement in next three months. Since I’m not microservices master, some of my current decisions might be stupid or just not efficient. I so, please let me know in the comments. This would definitely help me out 😉 ! What are microservices? Let’s start with defining the microservice term. In a common approach, we design our system as one huge „being”. Of course, there mig...
Daj się poznać 2017 2792 dni, 14 godzin, 19 minut temu 50 źrodło rozwiń
14 komitów, 3 projekty i zaimplementowany cały CQRS (prawie cały :), świetny wynik jak na tydzień pracy. ...
Daj się poznać 2017 2793 dni, 13 godzin, 52 minuty temu 98 źrodło rozwiń
W tekście “CQRS+DI w C# i Autofac” pokazałem, że CommandHandler nie zwraca żadnego rezultatu wykonania komendy. Natomiast w “Esencja CQRS” pisałem, że jest to jedna z zasad, co do której można się spierać. Więc… jak to faktycznie jest? Wrzucanie komendy w system i “pójście dalej” bez żadnej informacji o rezultacie bywa możliwe, lecz zwykle ciężko byłoby to zaimplementować. No bo jak to: kazałem coś zrobić mojej aplikacji i nie wiem czy się udało, więc… co dalej? Gdzie pokierować użytkownika?
Sztuka programowania 2895 dni, 13 godzin, 33 minuty temu 202 źrodło rozwiń
Not so long ago, I’ve eventually decided to dive into the world of microservices. I did look for an opportunity to make use of this architectural pattern for quite some time and finally was able to do so. After 3 months of trying out the new things and learning stuff mostly on my own (the hard way) I believe it’s a good time to share some of my experience. I have no doubts that at some point in the future when I look back at this post I might be like – “oh God, what was I thinking back then, it’s so wro...
Programowanie rozproszone 2894 dni, 15 godzin, 1 minutę temu 207 źrodło rozwiń
To be honest, I thought that my previous post would be the last in the CQRS/ES series, but I forgot to discuss one more thing related to that topic. Many developers don’t know how we should handle the following scenario in our systems: „During the creation of user’s new account I would like to verify rather a username is unique in the whole database. Should I use Event Store or Read Database for a query? Where should I check that?” Seriously, that question is one of the most popular topics connected ...
Sztuka programowania 2938 dni, 5 godzin, 4 minuty temu 156 źrodło rozwiń
As I announced in the last part, our CQRS/ES journey is almost finished! But before it happens we need to take care of read side of our application. However, before we move forward to the implementation, it’s worthwhile to explain why do we need a read side? After all, we have an excellent data source called Event Store which allows us to reconstruct every domain object in our system. What’s, even more awesome is the fact that we can „time travel” in our domain by not applying all events in our domain ob...
Architektura 2947 dni, 8 godzin, 44 minuty temu 154 źrodło rozwiń
All right, after a few short breaks, I’m finally ready to continue our journey, during which we discover Command Query Responsibility Segregation pattern along with Event Sourcing. In a previous part, we discovered the role of events and ES in our application and to be honest we’re almost done! But before that, we need to focus a little bit on transporting our commands and events. That’s why today’s post will be dedicated the buses. Okay, let’s start! RabbitMQ and EasyNetQ To accomplish our task, we n...
Architektura 2959 dni, 3 godziny, 42 minuty temu 280 źrodło rozwiń