Tout les message sont envoyé à l'exchange (topic) principal : agoram_exchange

C'est le consommateur qui met en place la topologie adapté à son usage.

Exchanges

Les exchanges sont les points d'entrée pour une Producteur de messages voulant envoyer un Message dans le système. Dans l'architecture Gadz.org, on distingue 4 types d'exchanges :

L'exchange d'événement

Il n'y a qu'un seul exchange d’événement. C'est un exchange durable de type topic ayant pour nom agoram_event_exchange

Cet exchange reçoit l'ensemble des événements ayant lieu dans le système. Les services se s’inscrivent aux topics dont il souhaitent recevoir les notifications. La manière dont le message est ensuite traité et la topologie en aval est définie par le service consommateur.

L'exchange de logs

Il n'y a qu'un seul exchange de log. C'est un exchange durable de type topic ayant pour nom log

Il a pour vocation à être inscrit à chacun des autres exchanges d'entrée sur le topic *. Cette inscription est à la charge du service responsable de l'exchanges d'entrée

Chacun des loggers peut ensuite s'inscrire à l'exchange de log, en spécifiant ou non une clé de routage pour n'écouter qu'une partie du traffic.

Le logger principal est abonné à l'exchange de log via la clé de routage *

Les exchanges de requêtes

Les exchanges de requêtes sont des exchanges créés par les services afin de recevoir des requêtes.

Un exchange de requêtes DOIT être de types topic.

Un exchange de requêtes DOIT être durable.

Un exchange de requêtes DOIT avoir un nom du type request.[identifiant_du_service]

Un service DOIT ne presenter qu'un seul exchange de requêtes

Les exchanges de réponses

Les exchanges de réponses sont des exchanges créé par les services afin de recevoir les réponses à leurs requêtes.

Un exchange de réponses DOIT être de types topic.

Un exchange de réponses DOIT être durable

Un service DOIT ne presenter qu'un seul exchange de reponses

Un exchange de réponses DOIT avoir un nom du type reply.[identifiant_du_service]

 

Exemple de topologie

L'exemple ci-dessous ne satisfait pas les nouvelles spécifications

https://drive.google.com/a/gadz.org/file/d/0B6ucsDu49YbqTHJUc1ZQM3ZRLTQ/view?usp=sharing