This creates a new abstraction that we can use to share information about how to find the gRPC server for a given origin.
Two things this would enable:
- Only creating one managed gRPC process per daemon, even though they're in different thread
- Paving the way for having the daemon manage gRPC server lifecycles in other ways besides just processes - for example, spinning up a docker container or k8s pod for each workspace entry, then saving that information to the registry where other daemons in other threads can know how to find it.
Still sorting out testing and fleshing out, but happy to hear any early thoughts.