Část 03 z 16 · Den 1 · publish/subscribe, fronty
Odesílatel, který zná všechny příjemce
Problém a zkušenost
Kdo má na událost reagovat?
Odesílatel nechce vědět, kdo všechno událost potřebuje. Příjemce nechce zpracovávat, co ho nezajímá.
Přímé volání
- Kalkulačka
- volá Risk
- volá Process
- volá Projekci
Důsledek
- Nová službaznamená změnu odesílatele
Zkušenost z praxeKolik míst u vás dnes musí odesílatel znát, aby se změna rozšířila?
TakeawayČím víc příjemců odesílatel zná, tím hůř se mění.
Více k tématu
Co to znamená
Odběratel je služba, která se přihlásila k odběru určitého typu událostí.
Proč to používáme
Odesílatel pošle událost jednou. Kdo ji čte, rozhoduje směrování, ne odesílatel.
Kdy to dává smysl
Když na jednu událost reaguje víc služeb a seznam se mění.
Kde se to láme
- Odesílatel, který posílá zprávu „konkrétní službě“.
- Odběratel, který čte všechno a filtruje si sám.
Představme si
MortgageApplicationSubmitted čte Risk Service a Process Manager. Nová služba, třeba Auditní, se jen přihlásí.
Kdo událost čte, nemá být starost toho, kdo ji píše.
Princip, aplikace a cvičení
Každý odběratel má vlastní frontu
Broker přijme událost a podle směrovací tabulky ji doručí do front odběratelů. Každý si bere svým tempem.
Směrování
- MortgageApplicationSubmitted
- Brokersměrování podle typu
- Fronta Risk
- Risk Service
Stejná událost, druhý odběratel
- Broker
- Fronta Process
- Process Manager
Trade-offVolné propojení znamená, že nikdo nevidí celý tok. Potřebujeme zdokumentované směrování a korelaci událostí.
TakeawayFrontou oddělíme tempo odesílatele od tempa příjemce.
Více k tématu
Co to znamená
Směrovací tabulka říká, které typy událostí patří do jaké fronty. Každá fronta má jednoho čtenáře.
Proč to používáme
Příjemci se nemusí poznat a nemusí běžet ve stejnou chvíli.
Kdy to dává smysl
Když potřebujeme, aby výpadek jednoho odběratele neovlivnil ostatní.
Kde se to láme
- Směrování rozházené po kódu místo jednoho místa.
- Jedna sdílená fronta pro všechny odběratele.
- Zapomenout, že reakce přijdou s prodlevou.
Představme si
Risk Service je pomalejší. Fronta Process se zpracuje hned a Risk si bere zprávy svým tempem.
Fronta je dohoda o tom, že každý může být pomalejší nebo rychlejší.
Školení pro váš tým
Chcete školení pro svůj tým?
Školení vedeme na vašem kódu a vašem doménovém problému. Domluvíme rozsah, termín a formu.
Probrat školení →