Pattern Publish-Subscribe

Principe

Le pattern d'abonnements de messages consiste en :

  • un abonnement logique: nom, notion, etc appelé Topic,
  • des systèmes qui publient des messages: les écrivains,
  • des systèmes qui reçoivent les messages publiées: les abonnés.

Les messages sont ordonnées dans le Topic et chaque abonné les reçoit suivant 2 principes:

  • soit les messages sont délivrés uniquement aux abonnés qui écoutent,
  • soit les messages sont persistants et chaque abonné les reçoit à un rythme différent.

Les messages sont délivrés dans le même ordre qu'ils ont été reçus.

Schéma EIP

Vision sans Médiation

Dans une mise en oeuvre sans Médiation, le "Publish-Subscribe channel" ou Topic prend en charge:

  • la duplication des messages
  • le routage vers TOUS les destinataires.

Le message d'origine est celui d'arrivée.

Vision avec Médiation

L'utilisation de médiation complexifie l'ensemble. L'objectif principal est:

  • adhérence faible en rythme
  • adhérence faible en format.

Le Topic véhicule donc uniquement le format Pivot.

Pour cela, une queue "simple" est habituellement utilisée pour chaque Subscriber afin de permettre les transformations vers le format natif. 


Chaque Subscriber doit avoir à disposition une Dead Letter Queue afin d'entreposer les messages rejetés par :

  • la transformation Pivot/Natif 
  • ainsi que lors de son traitement local (Subscriber A|B|C).

Les rejeux sont alors réalisables par consommateurs sans impacts sur les autres.