Le problème ici est requête-réponse.
Cela fonctionne comme ceci :
- MT place l'identifiant de la requête dans la propriété d'état de la saga
UrlRequestId
- La demande est envoyée
- Vous obtenez une réponse, la réponse contient l'adresse du demandeur et l'identifiant de la demande dans son en-tête
- MT utilise le référentiel saga pour trouver votre instance en utilisant
repo.Find(x => x.UrlRequestId == message.Headers.RequestId)
(donc ce n'est pas le vrai code mais c'est ce qui se passe) - Redis (ou tout autre KVS) ne prend pas en charge les requêtes, nous ne prenons donc pas non plus en charge les requêtes dans les référentiels saga et vous obtenez une exception "non implémentée"
Votre spécification de corrélation pour les réponses n'a aucun effet depuis Request
utilise toujours des en-têtes pour trouver une instance de saga à laquelle appartient la réponse.
Vous pouvez contourner ce problème en n'utilisant pas de requête-réponse et en émettant à la place un événement en utilisant context.Publish(new LinkCreatedEvent { ... , CorrelationId = context.Message.CorrelationId })
et en utilisant la corrélation habituelle.