[Feature] Routing
We're very keen on having routing functionality implemented into Halibut for various reasons (see https://github.com/OctopusDeploy/Halibut/issues/65#issuecomment-517908723).
We've started work towards this and would love to have your feedback about simple changes we've made that could enable routing functionality.
POC can be found here: https://github.com/willemda/Halibut/tree/feature/routing/source (Run SampleClient, SampleProxyServer & SampleServer)
Changes can be summarized by this single file changes (HalibutRuntime.cs) : https://github.com/willemda/Halibut/commit/018f2ce#diff-e9557d3eda420c227f8e7efdeac71162
-
When sending a message, we make use of the routeTable dictionary to check if we need to route the message through another endpoint.
-
When receiving a message, we check if the destination of the message matches the current endpoint, if not, we try and send this message over (can be routed again potentially). If yes, we process as usual
Our goal is to implement this in a way that would suit everyone so that we can contribute those changes back into Halibut.