wip: xxx: introduce a way to submit and listen isolated calls #103
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The idea underneath is, currently for every isolate run, you basically need two peers (a client and a server) which makes both sides hold state without a good reason. For the world of HTTP servers, we can essentially fire-and-forget (which is not a good name for this stuff where we actually care about the status of the task) them and let the gateway itself hold as little state/connections as possible.
For achieving this goal quickly, this PR proposes a
Submit
endpoint in addition to the existingRun
endpoint in the isolate server where you can fire a task and pass a callback which will be used to communicate the logs and the results back. This is still a bit fragile (especially without any sort of fault tolarance on when the callback URL fails) and might be even slower (plain HTTP 🤢) but all of these properties can be improved upon once we are confident in the architecture. The main goal here is to provide the most basic form of fire-and-forget mechanism to isolate where we can start using and experimenting with it on the server and eventually make it nicer.