Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hot reload go modules #3433

Open
matt2e opened this issue Nov 19, 2024 · 0 comments
Open

Hot reload go modules #3433

matt2e opened this issue Nov 19, 2024 · 0 comments
Labels
go Go runtime

Comments

@matt2e
Copy link
Collaborator

matt2e commented Nov 19, 2024

Plan:

  • go language plugin does a build, sends back build success with devEndpoint set to it's own bind address
    • go language plugin runs the go module executable with a free bind address
  • FTL does provisioning, starts a runner pointing at the language plugin (which will be the proxy)
  • language plugin's proxy starts receiving pings, just forward these on to the new executable's bind address
  • ✅ now things are up and running
    • language plugin keeps polling for file changes
  • If a file change is found:
    • plugin's proxy starts holding on to requests rather than forwarding them
    • build, then see if theres any schema changes.
      • If so then send a build success to FTL (normal stuff procedes from there)
      • If no schema changes, basically no need to tell FTL (though we might want to indicate it somehow) just bring up the new executable and when its ready switch traffic to it (including traffic the plugin held onto)
@matt2e matt2e added the go Go runtime label Nov 19, 2024
@github-actions github-actions bot added the triage Issue needs triaging label Nov 19, 2024
@ftl-robot ftl-robot mentioned this issue Nov 19, 2024
@bradleydwyer bradleydwyer removed the triage Issue needs triaging label Nov 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
go Go runtime
Projects
None yet
Development

No branches or pull requests

2 participants