Tworzenie złożonych systemów w architekturze zdarzeniowej z wykorzystaniem Apache Kafka

by:
Czas trwania 5 dni

Najbliższe terminy tego szkolenia

Cena szkolenia 3500 PLN (netto)

Standardy JSystems

  1. Wszyscy nasi trenerzy muszą być praktykami i osiągać średnią z ankiet minimum 4.75 na 5. Nie ma wśród nas trenerów-teoretyków. Każdy trener JSystems ma bogate doświadczenie komercyjne w zakresie tematów z których prowadzi szkolenia.
  2. Wszystkie szkolenia mają format warszatowy. Każde zagadnienie teoretyczne jest poparte rzędem warsztatów w ściśle określonym formacie.
  3. Terminy gwarantowane na 100%. Jeśli jakiś termin jest oznaczony jako gwarantowany, oznacza to że odbędzie się nawet jeśli część grupy wycofa się z udziału. Ryzyko ponosimy my jako organizator.
Zapisz się
Program szkolenia
  1. Wstęp - co zamierzamy osiągnąć
    • Asynchroniczna komunikacja pomiędzy poszczególnymi Bounded Contextami
    • Wykorzystanie zdarzeń do budowy systemu raportowego
  2. Architektura aplikacji
    • Zapoznanie z domeną systemu
    • Bounded Context
    • Model C4
  3. Drivery architektoniczne
  4. Przygotowanie środowiska pracy
    • Instalacja środowiska deweloperskiego (IDE)
    • Instalacja Javy
    • Instalacja MySQL
    • Zbudowanie projektu szkieletowego na podstawie szablonu z repozytorium
  5. Architektura Event-Driven
    • Zalety Event-Driven Architecture
    • Wyzwania związane z komunikacją asynchroniczną
    • Orkiestracja zdarzeń i wzorzec Saga
    • Architektura pluginowa
  6. Anatomia Apache Kafka
    • Porównanie Kafka vs RabbitMQ vs AWS SQS
    • Brokery
    • Producent
    • Konsumer
    • Topiki
    • Wiadomość
      • typ danych
      • nagłówek
    • Partycje
  7. Zarządzanie Apache Kafka
    • Poznanie narzędzia Lenses.io
    • Zarządzanie topikami
    • Schema Registry
    • Zarządzanie grupami konsumerów
    • Wyszukiwanie wiadomości za pomocą KSQL
    • Wstawianie nowych wiadomości na topik
    • Zarządzanie offsetami
  8. Implementacja komunikacji asynchronicznej w systemie ze złożoną domeną
    • Problem transakcyjności i implementacja wzorca Outbox pattern
      • Kafka Connect
      • Implementacja wzorca Outbox
    • Wsparcie dla Kafki w Spring Boot
    • Implementacja konsumera zdarzeń
    • Obsługa błędów
      • Poison Pill
      • Dead Letter Topic
      • Błędy serializacji i deserializacji
    • Implementacja producenta zdarzeń
    • Debugowanie problemów i śledzenie logów
  9. Wysoko wydajne raporty danych za pomocą wzorca CQRS 3 poziomu
    • Budowanie stosu read w oparciu o zdarzenia
    • Problem ostatecznej spójności
    • Regeneracja danych w oparciu o Kafkę
  10. Testowanie aplikacji w architekturze zdarzeniowej
    • Testowanie asynchroniczne
      • Awaitility w JUnit
      • Testy integracyjne za pomocą Testcontainers
    • Testy E2E w architekturze zdarzeniowej
      • Debugowanie
      • Niedeterministyczność
  11. Podsumowanie

Opis szkolenia

Szkolenie odbywa się na żywo z udziałem trenera. Nie jest to forma kursu video!


O szkoleniu

Kompleksowe szkolenie pokazujące proces budowania złożonego systemu informatycznego w architekturze rozproszonej z wykorzystaniem brokera Kafka i komunikacji w formie publish - subscribe. Przedstawienie zalety i wyzwania stojące podczas pracy z architekturą aplikacji w formie rozproszonej przy jednoczesnej komunikacji asynchronicznej.



Cel szkolenia

Poznasz najbardziej popularne obecnie narzędzie do pracy w architekturze zdarzeniowej – Kafkę. Nauczysz się ją wykorzystywać do komunikacji pomiędzy poszczególnymi modułami aplikacji. Zaimplementujemy, oparty na rzeczywistej domenie biznesowej, system informatyczny komunikujący się wyłącznie asynchronicznie przy wsparciu Spring Boot. Dowiesz się na co zwrócić szczególną uwagę przy implementacji takich rozwiązań, a także zdobędziesz umiejętności debugowania i naprawiania potencjalnych problemów.



Dla kogo?

Adresatami są osoby pracujące na codzień, lub mające zamiar pracować ze złożonymi systemami informatycznymi w architekturze rozproszonej z wykorzystaniem Kafki. Wymagane umiejętności to znajomość języka programowania Java, przynajmniej na średnim poziomie, podstawowa znajomość SQL oraz Spring Boot.



Co usprawnisz w swojej pracy?

Praca w architekturze rozproszonej z wykorzystaniem komunikacji asynchronicznej wymaga sporo doświadczenia i znajomości pewnego warsztatu, który pozwoli Ci szybko rozwijać, a potem utrzymywać takie systemy. Jeżeli już pracujesz z Kafką to odkryjemy przed Tobą jej wszystkie sekrety i sprawimy że wniesie ona jeszcze większą wartość dodaną do Twojego projektu.



Gdzie użyjesz nabytą wiedzę?

Szkolenie przyda Ci się podczas pracy z aplikacjami w architekturze rozproszonej. Pozwoli Ci wprowadzić całą gamę usprawnień do projektu, które zdecydowanie wpłyną na jego jakość. Jeżeli dopiero zamierzasz zbudować system w oparciu o Kafkę i komunikację asynchroniczną, to dzięki kursowi dowiesz się na co szczególnie zwrócić uwagę żeby uniknąć późniejszych problemów i wykorzystać maksymalną wartość tego narzędzia.



Czego się nauczysz?

Dogłębnie poznasz architekturę i sposób działania Kafki w integracji ze Spring Bootem jako narzędzia do implementacji złożonego systemu informatycznego. Dowiesz się jak dobrze wdrażać i testować aplikację opartą o zdarzenia. Rozważymy również kwestie późniejszego zarządzania i utrzymania takich systemów.



Prework - jak przygotować się do szkolenia?

  1. Przypomnienie najważniejszych aspektów programowania w języku Java
    • Podstawowe kontrukcje typu warunek, pętla itd.
    • Programowanie obiektowe w Java
    • Kolekcje
    • Stream API
  2. Przypomnienie czym jest Spring Boot jako framework do tworzenia nowoczesnych aplikacji
    • Beany/wstrzykiwanie zależności
    • 3-warstwowa architektura
    • Podstawy REST API
    • Komunikacja z bazą danych
  3. Powtórka podstawowych informacji o bazach danych i języku SQL:
    • Co to jest baza danych?
    • Co to jest tabela?
    • SELECT ... FROM ... WHERE .... ORDER BY
    • INSERT/UPDATE/DELETE

Spring BOOT

Nowoczesny framework do szybkiego tworzenia aplikacji webowych. Pozwala w łatwy sposób udostępnić aplikację za pomocą wbudowanego serwera HTTP w postaci REST API. Umożliwia szybką implementację najbardziej potrzebnych funkcjonalności aplikacji, takich jak połączenie z bazą danych czy wysyłkę emaili.

MySQL

Jedna z najbardziej popularnych, relacyjnych baz danych. Bardzo dobrze wspiera język SQL (Structure Query Language). Jest wykorzystywana zarówno w małych jak i dużych projektach. Cechuje się wysoką niezawodnością i szybkością działania.

Kafka

Skalowalna i bardzo wydajna platforma streamingowa służąca do przetwarzania ogromnych ilości informacji w modelu publish-subscribe. Doskonale sprawdza się w systemach czasu rzeczywistego takich jak śledzenie aktywności użytkownika. Bardzo dobrze pozwala również wdrożyć rozproszoną architekturę aplikacji z centralnym brokerem wiadomości sterującym pracą poszczególnych usług za pomocą przekazywanych komunikatów.



Prowadzący szkolenie: Marcin Nowak



Architekt oprogramowania i lider techniczny z 11-letnim doświadczeniem w programowaniu w technologii Java i tworzeniu systemów klasy Enterprise. Posiada wieloletnie doświadczenie w pracy z systemami zarówno legacy jaki i greenfield, posiadającymi bardzo złożoną i trudną w zrozumieniu domenę biznesową (life science, farmacja, procesy produkcji, energetyka zawodowa). Wielki entuzjasta Domain Driven Design, architektury zdarzeniowej (EDA) oraz mikroserwisowej. Zwolennik dzielenia się wiedzą (https://appsynergy.pl) i przekazywania jej w jak najprostszy sposób, najlepiej na przykładach zaczerpniętych z prawdziwych projektów. Widział pracę z obu stron projektu (biznes i developerzy), więc bardzo dobrze rozumie potrzebę grania obu ekip do jednej bramki. Prywatnie szczęśliwy mąż i ojciec dwójki synów.


Stanowisko robocze


Do tego szkolenia każdy uczestnik otrzymuje dostęp do indywidualnej wirtualnej maszyny w chmurze. Ma ona zainstalowane i skonfigurowane wszystko co potrzebne do realizacji szkolenia. Maszyna będzie dostępna przez cały okres szkolenia.
Terminy gwarantowane

Gdy na jakiś termin zgłosi się minimalna liczba osób, termin oznaczamy jako gwarantowany.

Jeśli jakiś termin oznaczony jest jako gwarantowany to oznacza to, że na 100% się odbędzie we wskazanym czasie i miejscu.

Nawet gdyby część takiej grupy zrezygnowała lub przeniosła się na inny termin, raz ustalony termin gwarantowany takim pozostaje. Ewentualne ryzyko ponosimy my jako organizator.

Przejdź do terminów tego szkolenia

Szkolenia online Szkolenia online odbywają się na żywo z udziałem trenera. Uczestniczy łączą się na szkolenie za pomocą platfomy ZOOM. Informacje o wymaganym niezbędnym oprogramowaniu oraz informacje organizacyjne uczestnicy otrzymują na 7 dni przed datą rozpoczęcia szkolenia.
Inne szkolenia tej kategorii Sprawdź pozostałe    szkolenia Architektura oprogramowania!

Sprawdź, co mówią o nas ci, którzy nam zaufali

  • 5.0/5

    Administracja bazami danych Oracle

    30-03-2024 Polecam w 100% Wojciech Dawid, Wojskowa Akademia Techniczna
  • 5.0/5

    Kompleksowe szkolenie SQL w PostgreSQL

    30-03-2024 Świetne szkolenie ! Kolejne szkolenie w JSystems i kolejny raz się nie zawiodłem. Szczerze polecam każdemu. Dziękuję ! Zbigniew Wiaterski, Cloud & Devops Solutions Zbigniew Wiaterski
  • 4.83/5

    Administracja serwerem baz danych Microsoft SQL Server + High Availability

    30-03-2024 Śmiało zapisujcie się wiedza szeroka i przede wszystkim praktyczna ;) Szymon Nowakowski, Prokuratura Okręgowa w Płocku
  • 5.0/5

    Administracja serwerem baz danych Microsoft SQL Server + High Availability

    30-03-2024 Cena, treść oraz poziom wiedzy prowadzącego Godne Polecenia Adam Klatte, Prokuratura Okręgowa w Płocku
  • 4.9/5

    Kompleksowe szkolenie SQL w PostgreSQL

    30-03-2024 Szkolenie nastawione na praktykę. Dużo wiedzy popartych ciekawymi przykładami. Rafał Gasz, Politechnika Opolska
  • 5.0/5

    Kompleksowe szkolenie SQL w PostgreSQL

    30-03-2024 Polecam szkolenia firmy JSystems. Są one przeprowadzane w sposób warsztatowy, dają możliwość stałego kontaktu z trenerem oraz sprawdzenia swojej wiedzy podczas wykonywania zadań praktycznych. Patrycja Sałata, Cosibella Sp. z o.o.
  • 5.0/5

    Administracja bazami danych Oracle

    30-03-2024 Bardzo dobre i treściwe szkolenie. Prowadzący z bardzo dużą wiedzą teoretyczną jak i praktyczną. Zdecydowanie polecam! Adam Raflewski, IBS POLAND Sp. z o.o.
  • 5.0/5

    Programowanie w języku Python

    30-03-2024 Polecam - bardzo dobra zawartość merytoryczna szkolenia. Świetnie prowadzone. Dariusz Leśniewski, Polska Spółka Gazownictwa Sp. z o.o.
  • 5.0/5

    Programowanie w języku Python

    30-03-2024 Zdecydowanie polecam prowadzącego Łukasza. Potrafi w prosty sposób wytłumaczyć nawet zawiłe tematy. Posiada bardzo duża wiedzę związaną z Pythonem. Jacek Wachowiak, Volkswagen Poznań Sp. z o.o.
  • 5.0/5

    Programowanie w języku Python

    30-03-2024 Dotychczas pytona kojarzyłem w inny sposób... coś w okolicach frameworka ZOO :) . Po szkoleniu Python nabrał kształtów i okazał się niezłą "małpą", bo coś tam zaskoczyło i zaraziło tematem. Do tematu będę wracał, choć może nie w tak szerokim zakresie jak na szkoleniu. Niemniej jednak skutecznie i produktywnie udało się przekuć zwykłą złotówkę na wiedzę, która, niezależnie od stopnia, na pewno się przyda, i to bardzo. Dzięki Łukasz! I do zobaczenia JSystems... po rządny z Was szkoleniowiec. A nawet, cytując bieżące trendy, "swój chłop!". Aleksander Wyszyński, Centrum Unijnych Projektów Transportowych
  • 4.9/5

    Administracja bazami danych Oracle

    30-03-2024 Praktyczne informacje, kompetentny prowadzący, ciekawa tematyka. Polecam. Arkadiusz Curulak, Eltel Networks Energetyka SA
  • 5.0/5

    Administracja bazami danych Oracle

    30-03-2024 Świetne przygotowanie trenera, który udzielał wyczerpujących informacji oraz przedstawiał różne scenariusze. Nie szedł tylko zgodnie z materiałem, ale pokazywał również różne sztuczki wybiegające poza materiał a które mogą być przydatne w codziennej pracy administratora baz Oracle. Artur Szymański, Gas Storage Poland sp. z o.o.
  • 5.0/5

    Administracja bazami danych Oracle

    30-03-2024 Bardzo dobre wprowadzenie do tematu baz danych Oracle. Polecam. Bogusław Henrykowski, Centrum Informatyki Resortu Finansów
  • 5.0/5

    Zaawansowana administracja PostgreSQL: High Availability, Disaster Recovery, monitoring, skalowanie

    30-03-2024 Bardzo ciekawe szkolenie. Świetne materiały, dużo przykładów praktycznych. Prowadzący, który jest praktykiem i zdecydowanie wie o czym mówi. Krzysztof Klimek, SGB BANK S.A.
  • 5.0/5

    Administracja bazami danych Oracle

    30-03-2024 Polecam. Jacek Papierzyński, Symatic Sp. z o.o.
  • 5.0/5

    Terraform i Infrastruktura jako Kod (IaC) - szkolenie kompleksowe

    29-03-2024 Polecam, trener wyczerpująco odpowiada na wszelkie pytania Mateusz Milczarczyk, ESET Polska Sp. z o.o.
  • 5.0/5

    Terraform i Infrastruktura jako Kod (IaC) - szkolenie kompleksowe

    29-03-2024 Godne uwagi, kurs przygotuje do pracy nawet bez wiedzy na temat terraforma Marcin Gach, EduBroker Sp. z o.o.
  • 5.0/5

    Terraform i Infrastruktura jako Kod (IaC) - szkolenie kompleksowe

    29-03-2024 Program szkolenia przeprowadzony bardzo profesjonalnie, widać wiedzę i doświadczenie prowadzącego. Wiedza przekazywana w jasny i klarowny sposób, nie było absolutnie "wywyższania się", z czym niestety przy szkoleniach z innymi prowadzącymi miałem doświadczenie. Interakcja prowadzącego z uczestnikami wzorowa - odpowiadanie na pytania, rozszerzanie wiedzy. Kamil Bogusławski, Rossmann SDP Sp. z o.o.
  • 5.0/5

    Spring WebFlux: Programowanie reaktywne w Javie z wykorzystaniem frameworka Spring

    28-03-2024 Bardzo dobre wejście w świat reaktywnej javy, asynchroniczności i wielowątkowości Jakub Musialik, Ornsson Solutions Sp. z o.o.
  • 5.0/5

    Tworzenie Single Page Application z wykorzystaniem Angular

    28-03-2024 Świetne szkolenie, bardzo polecam prowadzącego, duża wiedza, duże doświadczenie, świetne prowadzenie szkolenia, bardzo dobra współpraca z ludźmi Łukasz Bińkowski, Rossmann Supermarkety Drogeryjne Polska Sp. z o.o.
  • 5.0/5

    Spring WebFlux: Programowanie reaktywne w Javie z wykorzystaniem frameworka Spring

    28-03-2024 Marcin świetnie prowadzi zajęcia, chętnie udziela odpowiedzi na nurtujące nas pytania. Przemysław Czerw, Ornsson Solutions Sp. z o.o.
  • 4.81/5

    Kompleksowe szkolenie SQL w Microsoft SQL Server

    23-03-2024 Intensywne, napakowane wiedzą szkolenie. Od laika do osoby, która świadomie korzysta z zapytań w SQL w kilka dni :) Oliwia Wojtas, ORNSSON SOLUTIONS Sp. z o.o.
  • 4.9/5

    Kompleksowe szkolenie SQL w Microsoft SQL Server

    23-03-2024 Polecam szkolenie SQL - prowadzący Przemo! Dużo praktyki - pełen przekrój wiedzy. Na plus materiały po szkoleniu. Łukasz Dachowski, KRUK GRUPA VAT
  • 5.0/5

    Spring Boot - budowanie aplikacji REST

    23-03-2024 JSystems świetna robota. Merytoryczni prowadzący co ważne z żyłką pedagogiczną :) Tak trzymać. Emil Dmowski, UNIQA Towarzystwo Ubezpieczeń S.A.
  • 5.0/5

    Spring Boot - budowanie aplikacji REST

    23-03-2024 Tak powinny być prowadzone wszystkie szkolenia Marek Kuźniar, UNIQA Towarzystwo Ubezpieczeń S.A.
  • 4.9/5

    Spring Boot - budowanie aplikacji REST

    23-03-2024 jestem zadowolony Mateusz Bernaczyk, UNIQA Towarzystwo Ubezpieczeń S.A.
  • 5.0/5

    Programowanie w języku Python - poziom średnio zaawansowany

    21-03-2024 Szkolenie wysokiej jakości, bardzo dużo przydatnych treści, tematyka idealna dla osoby pracującej na stanowisku Python Developera. Przemysław Nowiński, LINK4 TU S.A
  • 5.0/5

    Analiza danych w języku Python

    21-03-2024 Takie szkolenie jest doskonałym punktem startowym dla początkujących, którzy chcą rozpocząć swoją przygodę z analizą danych przy użyciu Pythona. Szkolenie zrealizowane zgodnie z agendą. Czas i tempo bardzo dobrze dostosowane do materiału szkoleniowego. Szkolenie przeprowadzone w miłej atmosferze :) Paweł Jezierski, Kimball Electronics Poland Sp. z o.o.
  • 5.0/5

    Analiza danych w języku Python

    21-03-2024 Świetnie przeprowadzone szkolenie, luźna atmosfera, ciekawe zagadnienia, dużo praktycznych ćwiczeń. Pełen profesjonalizm prowadzącego, polecam! Karolina Bobruk, Santander Bank Polska S.A.
  • 4.9/5

    Programowanie w języku Python - poziom średnio zaawansowany

    21-03-2024 Dobrze tłumaczone! Miłosz Kocyła, Dynacon Sp. z o.o.

Trenerzy kategorii Architektura oprogramowania

Marcin Nowak
Michał Podbielski
Zapisz się

Masz jakieś pytania? Skontaktuj się z nami!

Odpowiadamy na telefony i maile w godzinach 9:00-17:00 od poniedziałku do piątku.

Telefon 22 299 53 69
Napisz do nas

Potrzebujesz więcej informacji?

Wiadomość wysłana

Przyjęliśmy Twoją wiadomość i skontaktujemy się z Tobą w tej sprawie

Klikając OK wrócisz do formularza

Nasza strona korzysta z plików cookie. Możesz zmienić zasady ich używania lub zablokować pliki cookie w ustawieniach przeglądarki. Więcej informacji można znaleźć w Polityce prywatności. Kontynuując korzystanie ze strony, wyrażasz zgodę na używanie plików cookie.