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)
Plan: