Problém je zde požadavek-odpověď.
Funguje to takto:
- MT vloží ID požadavku do vlastnosti stavu ságy
UrlRequestId
- Požadavek je odeslán
- Dostanete zpět odpověď, odpověď obsahuje adresu žadatele a ID požadavku v záhlaví
- MT používá k hledání úložiště ságy vaší instance pomocí
repo.Find(x => x.UrlRequestId == message.Headers.RequestId)
(proto toto není skutečný kód, ale děje se to) - Redis (nebo jakýkoli jiný KVS) nepodporuje dotazy, takže nepodporujeme dotazy ani v repozitářích ságy a dostanete výjimku „neimplementováno“
Vaše specifikace korelace pro odpovědi nemá od Request
žádný účinek vždy používá hlavičky k nalezení instance ságy, ke které odpověď patří.
Můžete to obejít tak, že nebudete používat request-response a místo toho vydáte událost pomocí context.Publish(new LinkCreatedEvent { ... , CorrelationId = context.Message.CorrelationId })
a pomocí obvyklé korelace.