Проблемът тук е заявка-отговор.
Работи така:
- MT поставя идентификатора на заявката в свойството на състоянието на сагата
UrlRequestId
- Заявката е изпратена
- Получавате отговор обратно, като отговорът съдържа адреса на заявителя и идентификатора на заявката в заглавката
- MT използва хранилище на сагата, за да намира вашият екземпляр с помощта на
repo.Find(x => x.UrlRequestId == message.Headers.RequestId)
(следователно това не е истинският код, но това се случва) - Redis (или който и да е друг KVS) не поддържа заявки, така че ние също не поддържаме заявки в хранилища на сагата и получавате изключение „not implemented“
Вашата спецификация на корелация за отговорите няма ефект след Request
винаги използва заглавки, за да намери екземпляр на сага, за който принадлежи отговорът.
Можете да заобиколите това, като не използвате запитване-отговор и вместо това да издадете събитие с помощта на context.Publish(new LinkCreatedEvent { ... , CorrelationId = context.Message.CorrelationId })
и използвайки обичайната корелация.