Сопоставление ответа саги с запросчиком

Я учусь использовать autoonymous от Masstransit, и это отличная структура. Однако у меня есть некоторые проблемы с реализацией запроса/ответа с использованием саги. Мой вариант использования похож на довольно стандартный процесс заказа.

Некоторый код:

Делаю запрос к саге так:

private readonly IRequestClient<PayOrder> _payOrder;
var request = new PayOrder(id, paymentRequest);
var response = await _payOrder.GetResponse<OrderPayment, TransitionNotAllowed, OrderNotFound>(
                request, cancellationToken);

Тогда в саге конфигурация выглядит так:

During(Created,
    When(Pay)
        .Request(
            CreateTransaction, 
            ctx => ctx.Init<CreateTransaction>(new CreateTransaction
            {
                OrderId = ctx.Instance.CorrelationId, 
                ...
            }))
        .TransitionTo(CreateTransaction!.Pending)
        
During(CreateTransaction!.Pending,
    When(CreateTransaction.Completed)
        .Then(OnTransactionCreated)
        .TransitionTo(Paying)
        .Respond(c => c.Instance.Payments.Last()),
    When(CreateTransaction.Faulted)
        .TransitionTo(Created));
    
private void OnTransactionCreated(BehaviorContext<OrderSaga, TransactionCreated> context)
{
    context.Instance.Payments.Add(new OrderPayment()
    {
        TransactionId = context.Data.Response.TransactionId
    });
}

Между ними также есть потребитель, который создает фактическую транзакцию и успешно возвращается. Подхватывается ответ потребителя, запускается CreateTransaction.Completed, и сага переходит в Paying. Однако ответ никогда не попадает в мой requestclient.

Также в выходных логах я вижу, что сообщение OrderPayment отправляется в шину, но почему-то я продолжаю получать тайм-ауты в requestclient, поэтому каким-то образом ответ не коррелируется с этим клиентом, и я не могу понять, почему.

[20:51:24 DBG] Declare exchange: name: Core.Models:OrderPay
ment, type: fanout, durable
[20:51:24 DBG] SEND rabbitmq://localhost/Core.Models:OrderP
ayment db800000-358d-74d4-c2eb-08d91c896ee0 Core.Models.Ord
erPayment

person Demoric    schedule 21.05.2021    source источник
comment
В правильном направлении указал Крис Паттерсон. stackoverflow.com/a/46319407   -  person Demoric    schedule 22.05.2021