[feature/performance] Fail fast when doing remote transport calls inside incoming request contexts #1119
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add a
Fastfail
context that can be passed in to external calls made by our httpclient transport.The idea here is that sometimes we do outbound http requests inside an incoming request context (say when a user is doing a search for an account our instance doesn't know yet). In these cases, the caller should wrap the request passed to the dereferencing functions in a Fastfail context, which indicates to the transport logic that it should fail after the first attempt.
This PR prevents situations where the search fails but the transport keeps retrying, which makes the search request feel very slow and buggy. Now, fails after the first attempt in such situations will return immediately, making things feel a lot snappier for the client (even when the request fails -- at least they can try again immediately if they want).