Are you looking for practical knowledge
about software architecture?
Check out my content - from articles to videos
My name is Oskar Dudycz. From over 13 years, I'm creating software close to the business.
I run workshops and training about Event Sourcing, CQRS and event-driven architectures.
I'm co-maintainer of Marten OSS library that allows implementing Event Sourcing.
On the blog, I share my knowledge of how to create good, modular applications pragmatically.
Mam zadanie dla Ciebie, oraz garść przemyśleń o modelowaniu systemów
Cześć! Tak jak wspominałem w poprzednich mailach, pracowałem i przeprowadziłem ostatnio warsztaty z Event-Driven Architecture. W ramach…
Czy to się przeskaluje... w dół?
Cześć! Dzisiaj krócej niż zwykle, bo jestem na wczasach! Niesamowite uczucie móc być znowu na plaży i nie musieć nosić maseczki. Doceniajmy…
Czym się różni Eventual Consistency od Causal Consistency?
Cześć! Pracuję aktualnie nad dwudniowym szkoleniem z Event-Driven Architecture. Niby już miałem przygotowane slajdy, ale oczywiście…
Jak obsłużyć unikalność w Event Sourcing?
Cześć! Na początku mały bonus. Wspominałem już o konferencji DynamIT w sierpniu w Krakowie. Może to być pierwsza pocovidowa konferencja na…
Jak obsłużyć batch w CQRS i DDD?
Cześć! Ostatnio dostałem pytanie jak obsłużyć batch w CQRS? Na przykład: zmień menadżera dla dziesięciu pracowników, wyślij kupon rabatowy…
Materiały z prezentacji o CQRS oraz nieco zaplecza
Cześć! Narzuciłem sobie w ostatnim tygodniu zawrotne tempo. Licząc z nadchodzącym w środę wystąpieniu na 4 Developers to będzie cztery…
O tym czemu generyczność to nie prostota
Cześć! Zanim przejdę to właściwej treści to prośba z mojej strony. Paweł Klimczyk jest bardzo porządną i aktywną osobą w naszej…
Kilka spostrzeżeń o rekordach i nullowalnych typach referencyjnych w C#
Cześć! Pracuję aktualnie nad prezentacją na 4Developers o CQRS i nowościach w .NET 5 i C# 9. Męczę przy tym na różne sposoby rekordy…
Techniki snapshotowania i dlaczego nie warto ich używać
Cześć! Sprawdziłem ostatnio z ciekawości, jakie są najpopularniejsze frazy wyszukiwane w dokumentacji EventStoreDB. Okazuje się, że w…
Jak w Event Sourcing odbudować stan agregatu?
Cześć! Chciałbym dzisiaj wrócić trochę do podstaw Event Sourcing. Zdałem sobie niedawno sprawę, że omawiam często bardziej zaawansowane…
Czy pisanie generatora klienta API to dobry pomysł?
Cześć! W zeszłym tygodniu napisałem, że nudne, powtarzalne sytuacje trzeba automatyzować. Są jednak takie sytuacje, gdy lepiej tego nie…
Jak zrobić własną GitHub Action?
Cześć! Jak pewnie wiesz, jestem fanem dokumentacji. Kilka praktycznych rad na ten temat opisałem na blogu: “How to create projections of…
Co wpadka budowlana ma wspólnego z naszymi autorytetami?
Cześć! Przez okno mojej sypialni widzę efekt dobrych planów, ale kiepskiej realizacji. W zamierzeniu eleganckie budynki w stylu…
Ciekawe narzędzie - Algolia, po co i jak używać
Cześć! W zeszłym tygodniu na swoim blogu napisałem o tym jak tworzyć dokumentację, żeby jej utrzymywanie nie bolało (zobacz tutaj…
Czy kreatywność programisty powinna być okazywana w formatowaniu kodu?
Cześć! Każdy z nas ma w sobie pokłady kreatywności. Ja od zawsze lubiłem rysować, lubiłem robić efektowne zagrania w piłce nożnej, do…
Czy to się będzie skalować?!
Cześć! Często przechwalam się, że zacząłem karierę zanim powstał StackOverflow. Dopiero w zeszły piątek udzieliłem pierwszej odpowiedzi na…
Patrz trochę szerzej, sprawdź trochę głębiej
Cześć! Dzisiaj zacznę od cytatu z Łony: “Z dnia na dzień żeby wzrok im przywykł Uczę moje dni zmiany perspektywy Bo wciąż wąsko widzą mimo…
Strukturalne typowanie w TypeScript, czyli these are not the droids you are looking for
Cześć! Na początku chciałem Ci się pochwalić. W zeszły piątek udało mi się zadebiutować jako “Keynote speaker”. Wystąpiłem z tematem…
Memoizacja, czyli optymalizacja na szybko
Cześć! Ostatnie trzy maile było dla jaroszy. Rzodkieweczka, jarmuż i rukola. Dzisiaj będzie mięśnie, więc można zapinać pasy. Chciałbym…
Zbudujmy ścianę, czyli bezpieczeństwo naszych systemów
Cześć! Do końca meczu NBA zostało 0.3 sekundy. Detroit Pistons prowadzili jednym punktem z San Antonio Spurs. Piłka była w rękach graczy z…
Jak Event Store zarabia na siebie?
Cześć! Kiedyś dosyć popularny był żart: Co filozof słyszy w pracy najczęściej? Poproszę Big Maca z Colą i podwójne frytki. Podobny suchar…
Programiści tacy jak my
Cześć! Jeśli śledzisz mnie na Twitter to mogło Ci się rzucić w oczy, że jestem fanem biblioteki System.Text.Json. Przy weekendzie nasza…
O debiucie w podcast Ostra Piła oraz o tym co sądzę o Onion Architecture
Cześć! Dopiero styczeń, a mnie udało się zaliczyć nowe doświadczenie życiowe. Zadebiutowałem jako gość podkastu Ostra Piła!. Porozmawialiśmy…
Dockery mają warstwy, czyli jak optymalnie budować swój projekt w Docker
Cześć! Jakiś czas temu zorientowałem się, że w Internecie ciągle wiszą moje posty z 2011 roku o konfiguracji i działaniu w SCRUM przy pomocy…
Testowałem na produkcji i się tego nie wstydzę!
Cześć! Testy na produkcji zwykle pojawiają się w niezbyt chlubnych, ale za to śmieszkowatych historiach. A to dostaniemy powiadomienie z…
Snapshoty w EventStoreDB
Cześć! Witam w nowym roku! Pozwól, że oszczędzę Ci podsumowania zeszłego roku, których teraz zalew wpada w newsletterach, blogach i ogólnie…
Jak robić projekcje zdarzeń dla rozbudowanych struktur obiektów?
Cześć! Jak tam Twój okres świąteczny? Urlopik, czy może odrabianie drugiego dnia Świąt dzisiaj? Ja jestem B2B, więc nie ma urlopu dla mnie…
Dlaczego seniorzy nie chcą programować?
Cześć! Rozmowy kwalifikacyjne to stresującego okoliczności. Zwykle dla obydwu stron. Jakiś czas temu miałem do zrekrutowania “seniorów…
Gdzie walidować, a gdzie nie?
Cześć! W zeszłym tygodniu pisałem o tym, żę lepiej mówić, a nie pytać. Opowiedziałem trochę o tym jak dzięki tej zasadzie możemy zbudować…
Powiedz, nie pytaj. Czyli co podgrzewanie mleka ma do programowania?
Cześć! Kiedyś miałem w planach napisać książkę kucharską dla facetów. Zestaw podstawowych porad jak przeżyć w kuchni. Poczynając od takich…
Trzymaj kciuki - jutro zaczynam rewolucję w swoim życiu!
Cześć! Czy ktoś Ci kiedyś zaproponował, że będzie Ci płacił za to co robisz aktualnie po godzinach w ramach hobby? Jaka by była Twoja…
Co to jest Dead Letter Queue i dlaczego warto to znać?
Cześć! Czy wiesz co to jest awizo? Czy zdarzało Ci się negocjować z kurierem, który stał pod Twoim mieszkaniem, a Ciebie nie było? No…
Dlaczego trzymać wszystkie zdarzenia w jednej tabeli?
Cześć! Każdy z nas ma swoje rzeczy, których się boi. Asterix bał się, że niebo mu spadnie na głowę. Sporo z nas boi się piątkowych wdrożeń…
Przynieś mi problemy, a nie rozwiązania!
Cześć! “Przynieś mi rozwiązania, a nie problemy!” - słyszałem ten tekst od biznesu i managementu nie raz - Ty pewnie też, nie? “Przynieś mi…
Gdzie Saga to za dużo
Cześć! Czy Saga może być antywzorcem? Tak daleko bym nie poszedł, ale są sytuacje gdy jej użycie to za dużo. Dwa tygodnie temu opisywałem…
Fixy na produkcji i jak (nie) wersjonować zdarzenia
Cześć! Szczęśliwi, którzy nie byli na produkcji. Mogą sobie tacy żyć w swoim własnym wyimaginowanym świecie. Jest to taki świat, w którym…
Saga, czyli rozproszone procesy w praktyce
Cześć! Co może pójść nie tak w rozproszonych systemach? Wszystko! Pewnie już o tym pisałem, ale lubię porównywać systemy rozproszone do…
Jak nie zgubić zdarzenia, czyli wzorce Outbox i Inbox
Cześć! Cześć! Mój Dziadek powiedział mi kiedyś, że ja będę już całe życie ciężko pracował. Do dziś nie wiem do końca czy w jego ustach to…
Wzorzec Mediator - czyli jak prosto zwiększyć modularność swojego kodu
Cześć! Lato się kończy! I to deszczem, w każdym razie tutaj gdzie siedzę. Ostatnie maile były dosyć letnie i to na dwójnasób. Letnie w…
Co Jaś Fasola otwierający auto ma wspólnego z programowaniem?
Cześć! Poniedziałek, poniedziałeczek. Ja wyjątkowo spędziłem go nie w pracy, ale w podróży znad morza. Sam nie wiem co lepsze czy…
Bazy klucz-wartość - o czym warto pamiętać w ich użyciu
Cześć! Dzisiaj chciałem pomówić trochę o bazach klucz-wartość (Key-Value). Temat na pozór oczywisty, ale przez to łatwo przeoczyć podstawowe…
A gdybym Ci powiedział, że bazy relacyjne to tak naprawdę Event Store'y?
Cześć! Wiele osób twierdzi, że Event Sourcing to podejście oderwane od rzeczywistości. Mamy bazy relacyjne, nie ma co kombinować. A co…
Jak pieniądz w chmurze wpływa na decyzje architektoniczne
Cześć! Czas to pieniądz. Truizm znany każdemu. Każdy rozumi, każdy wi. W dzisiejszych czasach chmura przestała być “buzz word”. Kiedy ktoś…
Wzorce strategiczne kontra wzorce taktyczne - które są ważniejsze?
Cześć! Zanim przejdę do właściwego tematu blok informacyjny. Wszyscy teraz robią webinary, więc robię i ja, oto rozkład na najbliższy okres…
Dbajmy o siebie! Czyli rzecz o kompatybilności
Cześć! W ostatnich dniach przez wszystkie przypadki odmieniane jest słowo odpowiedzialność. Odpowiedzialność za nas, za innych. Jesteśmy w…
Optymistyczny email na ciekawe czasy
Cześć! Podobno najgorsze co można komuś życzyć, to żeby żył w ciekawych czasach. W tych właśnie naszych ciekawych czasach chciałem napisać…
Jak SMS do byłej ma się do Event-Driven Design?
Cześć! Zmęczenie, rozkojarzenie, szczególnie poparte porcją “soku z gumijagód”. Dodajmy do tego melancholię, odrobinę chandry i być może…
Generyczne mechanizmy workflowów, dynamiczne słowniki i jak to się ma do DDD
Cześć! Kiedyś rozpocząłem cykl “What really grind my gears”, w którym napisałem jak bardzo mnie irytują źle napisane IFy. Cykl oczywiście…
Prawda to, że zdarzenia powinny być jak najmniejsze?
Cześć! Jak tam Twoje Święta? Mam nadzieję, że spełniły się życzenia z zeszłego tygodnia i udało się bez programowania? U mnie się udało…
Nie bądź jak Ebenezer Scrooge, czyli słów kilka o pracoholizmie
Cześć! W naszej branży panuje kult pracoholizmu. Tak jak chłopaki z siłki chwalą się ile wyciągnęli na klatę czy też zrobili w martwym ciągu…
Gdy testy jednostkowe to nie wszystko
Cześć! Czy wiesz, że jeszcze nie ma zimy? Pewnie, że wiesz, przecież widzisz co jest za oknem. Ale czy wiesz, że formalnie nawet jest…
Event-Driven Design to nie Event Sourcing, a Kafka to nie Event Store
Cześć! Są takie rzeczy, które mnie denerwują. Jeden z moich wykładowców (pan Kaliś) zawsze nam powtarzał, że “inżynier powinien się…
O tym jak robić dokumentację, która żyje i nie trzeba jej utrzymywać
Cześć! Od zeszłej niedzieli minęło raptem 8 dni. 8 dni od kiedy jadąc nocnym FlixBusem pisałem poprzedni Newsletter. Czuję się jakby minęły…
Socjologiczny aspekt Mikroserwisów, czyli słowo na niedzielę prosto z Flixbusa
Cześć! Tym razem w nietypowy dzień, z nietypowego miejsca do Ciebie piszę. Aktualnie jadę Flixbusem do Krakowa, a przede mną siedzi koleś i…
Ciach! Ciach! Szalone nożyczki. Czyli jak (nie) ciąć (mikro)serwisy
Cześć! Dzisiaj w jednej ręce trzymam klawiaturę, w drugiej nożyczki? Po co mi te nożyczki? Zgodnie z tematem maila chciałbym pogadać z Tobą…
Dwie niespodzianki oraz porcja newsów w tę niedzielę, która jest poniedziałkiem
Cześć! Dziwne są te długołikendowe poniedziałki, które są niedzielą. Po nich następuje wtorek, który jest poniedziałkiem, a piątek będący…
A kolanem w jaja, można? Czyli "Designing with Capabilities"
Cześć! Zacznijmy tym razem od przypomnienia pewnej sławnej sceny: ”- A z łokcia… w ryja, wolno?! – Nie wolno… – A kolanem… w jaja…
Jak zoptymalizować Event Store przy pomocy partycjonowania tabel
Cześć! Witam w kolejnym tygodniu! Dzień coraz krótszy, więcej czasu na lekturę - np. newslettera. Zacznę tym razem od autoreklamy, chociaż…
Odpowiedź na pytanie o "Smart Constructor" dla kontraktów oraz cotygodniowa porcja newsów
Cześć! W zeszłym tygodniu pisałem o wzorcu Smart Constructor, dzisiaj chciałbym dorzucić małe post striptum i zrobić kontynuację tematu, ale…
Przedstawiam "Smart Constructor" - jeden z moich ulubionych wzorców
Cześć! Różnorodność. Nasza droga programistyczna często przypomina tunel bobslejowy. Nie mamy lewego ani prawego pasa, suniemy po jednym…
No i cyk! Szybki newsletter dla odmiany! Wsiadaj do ekspresu!
Cześć! No i cyk - znów spóźnienie! Ale znowu mam dobre usprawiedliwienie, najlepsze! Tak jak wspominałem szykowałem pokój w Alpaki pod…
Jak zrobić Event Store w bazie relacyjnej? Odpowiadam!
Cześć! Kolejny tydzień, kolejny newsletter, tak jak Łonie kaloryfer splata się z przemijaniem, tak mi ten cotygodniowy mailing też powoli…
Co to jest zdarzenie i strumień zdarzeń? Wyjaśniam podstawy
Cześć! No i popatrz, dzieki zeszłotygodniowego spóźnieniu, w tym tygodniu dostaniesz 2 maile. Jakie zwiększyć wydajność? Spóźnić się. No…
Dlaczego konto bankowe nie jest najlepszym przykładem Event Sourcingu
Cześć! Nie dowiozłem! To dopiero drugi newsletter, a ja się spóźniłem. Miało wyjść słowo na niedzielę, a wyszedł witaj nowy tygodniu…
Kilka porad i przemyśleń jak zacząć robić Open Source'y
Cześć! Jestem lekko zdenerwowany, czy też podekscytowany bo to mój pierwszy newsletter - ever. Cieszę się, że mogę go napisać właśnie do…