Il problema qui è la richiesta-risposta.
Funziona così:
- MT inserisce l'id della richiesta nella proprietà dello stato della saga
UrlRequestId
- La richiesta viene inviata
- Ricevi una risposta, la risposta contiene l'indirizzo del richiedente e l'ID della richiesta nell'intestazione
- MT usa il repository saga per trovare la tua istanza usando
repo.Find(x => x.UrlRequestId == message.Headers.RequestId)
(quindi questo non è il vero codice ma è quello che succede) - Redis (o qualsiasi altro KVS) non supporta le query, quindi non supportiamo le query anche nei repository saga e ottieni un'eccezione "non implementata"
La tua specifica di correlazione per le risposte non ha effetto da Request
usa sempre le intestazioni per trovare un'istanza saga a cui appartiene la risposta.
Puoi ovviare a questo non utilizzando la richiesta-risposta e invece emettere un evento usando context.Publish(new LinkCreatedEvent { ... , CorrelationId = context.Message.CorrelationId })
e usando la consueta correlazione.