Runtime cleanup (Shim manager and task service) #7280
Merged
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 PR is a follow up for shim changes #5918 and addresses this todo.
It further decouples
ShimManager
andTaskService
, so now shim manager is not aware aboutTaskService
or any other service shim provides. Instead it manages generic shims instances, that can implement arbitrary number of services and just exposes a TTRPC client to them (viaShimInstance
interface).Previously it was challenging to make this change because of
TaskList
v1 dependency (v1 needs a list of Tasks while v2 needs a list of Shims). Since we updated supported Go versions (1.18, 1.19), which both support generics, we can implement multiple variations ofTaskList
-NSMap[runtime.Task]
forv1
andNSMap[ShimInstance]
forv2
.