DOSTĘPNY W MARCU 2025

Messaging Pragmatycznie

Messaging Pragmatycznie - Logo Messaging Pragmatycznie - Logo
Dołącz do oczekujących!
Mikroserwisy Net Modularny Monolit Solidne Web API Domain Driven Design
NASZYM KURSOM
ZAUFAŁO JUŻ
3000+ OSÓB

DARMOWE MATERIAŁY DLA CIEBIE

O CZYM
BĘDZIE TEN
KURS?

Messaging pragmatycznie - komunikacja asynchroniczna

Motywacja i fundamenty komunikacji async

Messaging pragmatycznie - RabbitMQ

Dogłębna znajomość protokołu AMQP

Messaging pragmatycznie - obsługa błędów

Obsługa błędów

Messaging pragmatycznie - Azure Service Bus

Świadoma konfiguracja on-prem i cloud

Messaging pragmatycznie - wyzwania distributed

Wyzwania systemów rozproszonych

Messaging pragmatycznie - topologia i modele dostarczania

Topologia i modele dostarczania

CO ZNAJDZIESZ W ŚRODKU

Wprowadzenie do kursu

5 lekcji

Przed wyruszeniem w drogę należy z... klonować repo. Ale nie tylko. Zanim wskoczysz w moduły wokół messagingu, wprowadzimy Cię w strukturę kursu, narzędzia jakie otrzymasz do nauki oraz dziedzinę problemową, w której będziesz się poruszać.

Założenia kursu

Struktura kursu

Dziedzina problemowa

Tour po kodzie

Fresh start

Komunikacja synchroniczna

6 lekcji

Zanim przejdziemy do komunikacji asynchronicznej, omówimy ograniczenia i wyzwania komunikacji synchronicznej. Dzięki temu zrozumiesz, dlaczego ten model nie zawsze sprawdza się w architekturze rozproszonej.

Dyskusja wprowadzająca

Komunikacja synchroniczna - wprowadzenie

Komunikacja synchroniczna w TicketFlow

Wyzwania komunikacji synchronicznej

Problemy z czasem odpowiedzi i wydajnością

Zależność od dostępności wszystkich usług

Błędy aplikacji, Skalowanie naszego systemu i Coupling

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Komunikacja asynchroniczna - teoria

4 lekcje

Wiemy już jakie wyzwania stawia przed nami komunikacja synchroniczna. Pora więc spróbować innego podejścia i - póki co - w oparciu o samą teorię omówić alternatywę - komunikację asynchroniczną.

Dyskusja wprowadzająca

Komunikacja asynchroniczna - idea

Komunikacja asynchroniczna - składowe

Adres i droga komunikatu

Message broker

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

RabbitMQ

5 lekcji

Wygląda na to, że znaleźliśmy rozwiązanie naszych problemów - komunikacja asynchroniczna i message broker pozwolą nam zbudować bardziej odporny i rozwijalny system rozproszony. A skoro mowa o brokerze, pora przedstawić nasze główne narzędzie w nadchodzących modułach - RabbitMQ i protokół AMQP.

Dyskusja wprowadzająca

RabbitMQ i AMQP

RabbitMQ - building blocks

Topologia

Uruchomienie RabbitMQ

RabbitMQ Management UI

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Połączenie z aplikacja

4 lekcje

RabbitMQ zwarty i gotowy czeka już na nas w swoim Dockerowym kontenerze. Pora byśmy wskoczyli w kod i połączyli się z brokerem wiadomości, stawiając pierwsze kroki z jego SDK.

Dyskusja wprowadzająca

RabbitMQ.Client

Połączenie (Connection)

Channel

VHost

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Wiadomość

6 lekcji

Połączono! Skoro wiemy już jak rozpocząć pracę z naszym brokerem, pora byśmy omówili wiadomość, czyli ładunek informacyjny, który jest sednem zarówno komunikacji synchronicznej jak i asynchronicznej.

Dyskusja wprowadzająca

Komunikat “w akcji”

Co zawiera wiadomość?

Koperta wiadomości

Semantyka wiadomości - Command, Event, Request/Response

Semantyka wiadomości a topologia

Zakres danych w wiadomości - Event notification vs ECST

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Producent

11 lekcji

Wiadomość wiadomością ale ktoś ją przecież musi wysyłać... W tym module poznasz szczegóły nadawcy wiadomości czyli "producenta" oraz narzędzia, jakie mamy dla niego dostępne w RabbitMQ.

Dyskusja wprowadzająca

Czego potrzebujemy do publikacji wiadomości?

Wymiana (Exchange)

Fanout Exchange

Direct Exchange

Topic Exchange

Headers Exchange

Alternate Exchange

Publikowanie wiadomości w TicketFlow

Publikowanie na kolejkę wiadomości

Projektowanie topologii od strony producenta

Topologia Exchange→Exchange

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Konsument

7 lekcji

Wiadomość wyprodukowana, zaadresowana i... no właśnie? Ktoś jeszcze musi tą wiadomość odebrać i skonsumować. Dlatego też w tym module omówimy podstawowe koncepty wokół drugiego (po producencie) ogniwa komunikacji asynchronicznej - konsumenta.

Dyskusja wprowadzająca

Konsument - podstawy

Model “pull” vs model “push”

Przepływ wiadomości w aplikacji

Skalowanie konsumenta

Architektura pipes and filters

Tworzenie topologii z aplikacji

Kolejki tymczasowe

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Modele dostarczania wiadomości

5 lekcji

Wiadomość - jest. Producent - jest. Konsument - jest. Czyli co, kończymy kurs? Nic bardziej mylnego! Dopiero teraz zaczynają się schody i wkraczamy w zaawansowane koncepty komunikacji asynchronicznej. W tym module poznasz bowiem wyzwania wynikające z różnych modeli dostarczania wiadomości.

Dyskusja wprowadzająca

Kontekst

Acknowledgment i DeliveryTag

At most once delivery

At least once delivery

Dlaczego exactly-once delivery w większości przypadków to ściema?

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Deduplikacja

4 lekcje

Mądrzejsi o wiedzę z poprzedniego modułu z pokorą wkraczamy w kolejne zaawansowane tematy. Wiedząc, że ta sama wiadomość do konsumenta dotrzeć może więcej niż raz, musimy się jakoś zabezpieczyć.

Dyskusja wprowadzająca

Jak możemy podejść do problemu duplikatów wiadomości?

Deduplikacja biznesowa

Deduplikacja techniczna

Implementacja mechnizmu deduplikacji z wykorzystaniem transakcji bazodanowej

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Obsługa błędów

6 lekcji

Pierwszy poważny problem rozwiązany - nie straszne nam już zduplikowane wiadomości. Nie da się jednak ukryć, że dużo szybciej napotkamy dużo bardziej przyziemne problemy - np. co, gdy w trakcie odbioru wiadomości przytrafią się nam aplikacyjne "fajerwerki"?

Dyskusja wprowadzająca

Podejścia do rozwiązywania błedów w komunikacji

Konsument - Ponawianie odbioru

Konsument - Dead letter queue

Konsument - Błędy jako zdarzenia

Producent - Wykrywanie braku konsumenta

Producent - Wykrywanie błedu zapisu wiadomości

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Tranzakcyjne wysyłanie wiadomości

6 lekcji

Komunikat wysłany, a może już nawet przetworzony przez oczekujących konsumentów. Jeszcze tylko COMMIT na bazie danych i zamykamy transakcje biznesową a na końcu... Exception?

Dyskusja wprowadzająca

Wzorzec Outbox

Zapis wiadomości do outbox

Publikowanie wiadomości z outbox

Outbox w scenariuszu biznesowym

Wzorzec “Listen to yourself”

Listen to yourself w scenariuszu biznesowym

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Wprowadzanie zmian

4 lekcje

Z każdym kolejnym modułem nasz system staje się coraz bardziej odporny na przeróżne software'owe turbulencje. Jak to jednak bywa w cyklu życia każdego oprogramowania, przychodzi moment, kiedy trzeba wprowadzić zmiany.

Dyskusja wprowadzająca

Ewolucja systemu

Zmiana wersji payloadu

Zmiana schematu wiadomości

Zmiana w topologii

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Kolejność przetwarzania

7 lekcji

Jedna zmiana i pół systemu płonie - co gorszego może nam się przytrafić? Wyobraźmy sobie w takim razie, że wiadomości docierają do nas bezbłędnie. Tylko kolejność jakaś taka... zła?

Dyskusja wprowadzająca

Co wpływa na koleność przetwarzania wiadomości?

Jak możemy zagwarantować kolejność przetwarzania wiadomości?

Message Ordering w procesie biznesowym

Topologia a kolejność przetwarzania wiadomości

Czym jest prefetch count?

Skalowanie horyzontalne i Single Active Consumer

Partycjonowanie i Consistent Hash Exchange

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Trwałość wiadomości

3 lekcje

Udało się - wiadomości nie tylko zmierzają ale i przetwarzane są w kolejności. Upewnijmy się jednak, by niewinny restart serwera nie stał się dla naszego systemu katastrofą.

Dyskusja wprowadzająca

Po co utrwalać wiadomości?

Kiedy wiadomość jest utrwalana?

Trwałość w RabbitMQ 4.0 i beyond

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Message streaming i Apache Kafka

5 lekcji

15 modułów za nami i message brokerzy nie kryją już przed nami zbyt wielu tajemnic. Warto jednak, byśmy poznali również alternywę w postaci platform streamingowych na przykładzie Apache Kafka.

Dyskusja wprowadzająca

Apache Kafka i message streaming

Uruchomienie i przykład użycia

Partitions + consumer groups

Przypadki użycia

Kiedy używać?

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Azure Service Bus

6 lekcji

Dawno minęły już czasy, gdy praca w rozwiązaniach chmurowych była tylko dla wybranych. Dlatego też w tym module zderzysz swoją dotychczasową wiedzę z komunikacji asynchronicznej z rozwiązaniem dostępnym w Azure. Dzięki tym paru lekcjom uświadomisz sobie jak dogłębne zrozumienie fundamentów pozwala wejść z pewnością w nowe rozwiązanie messagingowe.

Dyskusja wprowadzająca

Azure i Azure Portal UI

Topic, Subscription i Queue

Azure SDK w naszej aplikacji

Subscription filters

Deduplikacja

Sesje

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Observability

3 lekcje

Czego oczy nie widzą tego sercu nie żal? Nie w systemach rozproszonych! O ile messaging wiele rzeczy ułatwia, to odnajdywanie się w drodze komunikatu i wyłapywanie błędów z nim związanych do nich nie należy. W tym module poznasz absolutne minimum jeśli chodzi o obserwowalność systemu, jakie powinno towarzyszyć wdrażaniu na produkcję messagingu.

Dyskusja wprowadzająca

Dlaczego Observability NIE JEST opcjonalne

Czym jest distributed tracing?

Distributed tracing z brokerem wiadomości

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

Testowanie

4 lekcje

Testowanie na prodzie? Dziękuje, postoję! W tym module przeanalizujemy co, jak i kiedy możemy przetestować wystarczająco wcześniej, zanim dojdzie do "pożaru na prodzie".

Dyskusja wprowadzająca

Jak możemy testować komunikację asynchroniczną?

Testowanie integracyjne z TestContainers

Testy integracyjne producenta wiadomości

Testy integracyjne konsumenta wiadomości

Dyskusja podsumowująca

Challenge (o ile aplikowalne do tego modułu)

DLA KOGO JEST TEN KURS?

Messaging Pragmatycznie - Dla kogo

Kurs kierujemy do programistów na poziomie Regular+, którzy chcą pozyskać ekspercką wiedzę w tematyce komunikacji asynchronicznej w systemach rozproszonych.

Osoby o mniejszym doświadczeniu zachęcamy do zapoznania się z innym naszym kursem: SOLIDne Web API, w którym poruszamy fundamenty budowania synchronicznego API opartego o HTTP.

MASZ WĄTPLIWOŚCI
CZY TO KURS DLA CIEBIE?

Messaging Pragmatycznie - Koperta

“Dlaczego warto zainteresowac się tą tematyką?”

Blisko 60% ofert pracy w IT wymaga znajomości mikroserwisów lub messagingu. Przy branży zmierzającej do samowystarczalnych zespołów IT, znajomość messagingu to istotna przewaga.

“Co jeżeli już korzystam na co dzień z RabbitMQ?”

Świetnie! Ale czy rozumiesz, jak to działa?
Sama znajomość narzędzia nie wystarczy – zrozumienie jego działania jest kluczowe do efektywnej pracy.

“W mojej firmie nawet nie mam dostępu do infrastruktury”

Możesz nie mieć dostępu, ale zrozumienie działania systemu pomoże Ci w analizowaniu i rozwiązywaniu problemów.

“System, nad którym pracuję już wykorzystuje messaging”

Super! A czy rozumiesz, jak konfiguracja wpływa na jego zachowanie i sposób dostarczania wiadomości? Tego typu wiedza jest niezbędna w przypadku problemów.

“Co jeżeli nie używam RabbitMQ, tylko Azure Service Bus / Amazon SQS / etc.?”

Nie ma problemu! Kurs oparty na RabbitMQ nauczy Cię konceptów, które są uniwersalne dla różnych, popularnych technologii.

AUTORZY KURSU

Messaging Pragmatycznie - autorzy
DevMentors to zespół, którego wieloletnie doświadczenie w branży obejmuje zarówno klasyczną inżynierię oprogramowania (m.in. projektowanie i implementację systemów IT), jak i dzielenie się wiedzą poprzez prowadzenie licznych szkoleń, kursów, wystąpień na konferencjach oraz nagrań wideo.
Wieloletnie doświadczenie
Liczne szkolenia i warsztaty
Projektowanie architektury IT
Implementacja złożonych systemów
Kursy online oraz materiały wideo
Rozwijanie projektów open source
3000+
zadowolonych
kursantów
100+
filmów na
kanałach yt
200+
dni
szkoleniowych
120+
godzin kursów
online