Je crée un service (accessible via le web et l'application) où les utilisateurs appartiennent à une équipe. Chaque fois qu'un utilisateur fait quelque chose, tous les autres utilisateurs en ligne (*) de son équipe doivent être notifiés. J'évalue RabbitMQ pour cela.RabbitMQ - comment éviter de recevoir ses propres messages
(*) Notez qu'il est possible que le même utilisateur ait plusieurs sessions en même temps: il peut être connecté simultanément dans différents navigateurs, ou plus probablement dans le navigateur et l'application en même temps .
Mon approche actuelle est de créer un échange thématique pour chaque équipe:
- Lorsqu'un utilisateur se connecte, une file d'attente automatique de suppression est créé et lié à l'échange de sa/son équipe.
- Lorsqu'un utilisateur faisait une mise à jour, le backend envoie un message à l'échange de l'équipe correspondante.
- Enfin, toutes les files d'attente actives, c'est-à-dire toutes les sessions actives, reçoivent le message de mise à jour.
C'est génial, car le message de mise à jour ne doit être envoyé qu'une seule fois par le backend. Cependant, le problème ici est que l'initiateur reçoit également sa propre mise à jour. Je voudrais éviter cela. Est-ce possible? Ou devrais-je avoir un autre design? Bien sûr, je peux toujours ajouter l'identificateur d'utilisateur de l'initiateur dans la charge utile du message de mise à jour et filtrer sur ce champ lors de la réception d'un message de mise à jour, mais le message est toujours reçu.
Approche intelligente! –