title: How to configure request timeout and/or message TTL separately in MassTransit?
body: <p>My goal is to make request-response from API Gateway to microservice. I want request to be durable (not expiring), but response should be expiring (if no consumer will receive response within let's say 30s then it should expire). I am using RequestClient in API GW request handler (request scope). By default timeout is set by MassTransit to 30s and after this time request is removed from the queue. It's here in MassTransit code: <a href="https://github.com/MassTransit/MassTransit/blob/5e2a416384f005c392ead139f5c4af34511c56db/src/MassTransit/RequestTimeout.cs#L7" rel="nofollow noreferrer">https://github.com/MassTransit/MassTransit/blob/5e2a416384f005c392ead139f5c4af34511c56db/src/MassTransit/RequestTimeout.cs#L7</a>.</p>
  <p>First of I tried to set timeout in my request client like that
  (using RabbitMQ):</p>
  <pre class="lang-cs prettyprint-override"><code>// on request client level
  cfg.AddRequestClient&lt;ICreateGroupPayload&gt;(RequestTimeout.None);
  
  // and/or
  
  // on .GetResponse() level
  var response = await _createGroupClient.GetResponse&lt;ICreateGroupResult&gt;(new
              {
                  Name = payload.Name,
                  Description = payload.Description
              }, new CancellationToken(), RequestTimeout.None);
  </code></pre>
  <p>But neither of those options work. Still message has default 30s TTL.</p>
  <ol>
  <li>Why it does not work as expected? Is message TTL something different here than RequestTimeout? If yes then why its 30s?</li>
  <li>Do I have to configure message TTL manually in my case?</li>
  <li>I want request client to automatically timeout after 30s even when request message will never expire. Is this built in, or I have to write some custom code for timeout, or maybe it's enough if I will pass expiring CancellationToken to .getResponse()?</li>
  </ol>