chore: migrate some dispatchers from CallMetadata to Progress (part 1) #36429
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.
This is a first PR in a series where we migrate all dispatchers to accept a
Progress
instead of aCallMetadata
. The goal is to create aProgress
instance in aDispatcher
based on a timeout, so that we can later abort allProgress
instances when a client disconnects.For a graduate rollout, interfaces will be marked one by one in the
protocol.yml
asprogress: true
, and this flag will be removed in the end.Most of the server-side methods already accept a
Progress
, so migration is no-op. Some methods do not - in this case we assume the method is readonly, and dispatcher wraps it withprogress.race()
.Many server-side methods lost a
timeout
option in favor of aprogress
argument, mainly through changes to common types defined intypes.ts
.