Currently I have a monolithic gRPC server that implements several service stubs that are utilized by a large amount of internal client programs (none of this is public internet facing).
As our requirements have gotten more complex and more backends are being accessed by the monolithic gRPC server, I am looking to break them out in a more logical way. This would separate the single server into multiple servers that work with a particular backend, as opposed to one serer that rules them all.
The challenge I am facing is that I don't want to refactor each client to be aware of the specific server that is implementing its service.
I am looking at how others have solved this problem and I have looked at containerizing these applications and utilizing something like Kubernetes to handle the coordination and providing a gateway, but this seems like overkill for the scale of what we are working with. (We have a small development team and the additional overhead/cost of managing Kubernetes is not worth it).
Another thought was to create a gRPC Gateway from scratch that basically just forwards the requests/responses to the appropriate servers. But before I do that I wanted to see if anyone else had similar experiences?