Architektura reactive i powiązane wzorce
Opis
Architektura reaktywna stoi u podstaw współczesnych systemów informatycznych. Potrzeba skalowania, coraz większa popularność Microservices, niezależne rozwijanie różnych części systemu generuje potrzebę tworzenia systemów rozproszonych. W ramach szkolenia zostaną przedstawione kluczowe koncepcje, wzorce i rozwiązania, które umożliwią tworzenie niezawodnych systemów reaktywnych.
Wymagane umiejętności
- Uczestnik ma doświadczenie w tworzeniu komercyjnych systemów.
- Uczestnik zna podstawy działania systemów rozproszonych.
Szkolenie nie jest dedykowane konkretnemu stosowi technologicznemu. Przedstawia głównie zagadnienia architektoniczne i projektowe.
Podstawowy program
Moduł. 7
Wzorce aplikacji reaktywnych
Szczegółowy program
Moduł. 1
Wprowadzenie
- Architektura Reactive
- Style komunikacji - asynchroniczny i synchroniczny
- Dobór stylu komunikacji
- Wyzwania asynchronicznej komunikacji
- SOA i Microservices
- Destylowanie domeny
- Context mapping a architektura aplikacji
- Projektowanie integracji pomiędzy Bounded Contextami
Moduł. 2
Messaging
- Message Bus
- Niezawodność
- Store-and-forward
- Komendy i komunikaty
- Gateways
- Definiowanie komunikatów
- Handlers
- Strategie Retry
- Duplikacja danych
- Komunikaty bez zapewnionej kolejności
- Wersjonowanie komunikatów
- Monitorowanie i skalowanie
- Strategie tworzenia kolejek
- Wybrane wzorce związane z messagingiem
Moduł. 3
Events
- Zdarzenia wewnętrzene vs zdarzenia zewnętrzne
- Zdarzenie zewnętrzne a dane dziedzinowe
- Obsługa zdarzeń
- Wywoływanie logiki dziedzionowej
- Wywoływanie logiki aplikacyjnej
- Stratgie implementacyjne zdarzeń
- Gotowe mechanizmy
- Pamięciowa szyna zdarzeń
- Zdarzenia a wielowątkowość
- Zwracanie zdarzeń
- Kontener IOC jako przekaźnik zdarzeń
- Testowanie zdarzeń
Moduł. 4
Model aktorów
- Czym są aktorzy?
- Aktorzy w Akka
- System oparty o wykorzystanie aktorów
- Implementacja aktorów
- Remoting
- Clustering
- Testowanie aktorów
- Wzorce messagingu dla aktorów
- Konstruowanie komunikatów dla aktorów
- Kanały przesyłania komunikatów
- Routing komunikatów
- Konsumpcja komunikatów
Moduł. 5
Event Sourcing
- Przechowywanie stanu jako strumienia zdarzeń
- Temporal Queries
- Projekcje
- Snapshot
- Tworzenie Agregatów z wykorzystaniem ES
- Zachowywanie i odtwarzanie agregatów
- Obsługa wielowątkowości
- Testowanie agregatów opartych o ES
- Tworzenie Event Store
- Definiowanie formatu przechowywania zdarzeń
- Obsługa snapshotów
- Zapisywanie zdarzeń
- Ładowanie zdarzeń ze strumienia
- Odpytywanie wielu strumieni
- CQRS a ES
- Korzyści i koszty związane z ES
Moduł. 6
CQRS
- Kiedy jeden model nie wystarcza
- Model a UI
- Raportowanie
- Zdarzenia a CQRS
- Zmaterializowane widoki ze zdarzeń dziedzinowych
- Skalowanie odczytu poprzez Eventual Consistency
Moduł. 7
Wzorce aplikacji reaktywnych
- Testowanie aplikacji reaktywnych
- Reakcja na błędy
- Replikacja
- Zarządzanie zasobami
- Przepływ komunikatów
- Zarządzanie przepływem
- Zarządzanie trwałym stanem