Čá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í

  1. Kalkulačka
  2. volá Risk
  3. volá Process
  4. volá Projekci

Důsledek

  1. 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í

  1. MortgageApplicationSubmitted
  2. Brokersměrování podle typu
  3. Fronta Risk
  4. Risk Service

Stejná událost, druhý odběratel

  1. Broker
  2. Fronta Process
  3. 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í