Halibut icon indicating copy to clipboard operation
Halibut copied to clipboard

[Feature] Routing

Open willemda opened this issue 5 years ago • 0 comments

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.

willemda avatar Mar 19 '20 08:03 willemda