-
Notifications
You must be signed in to change notification settings - Fork 64
Description
Today the executor and serialization service must be colocated in the same server. This is largely because the vscode extension doesn't make it possible to configure the serializer and executor service independently.
Is it worth exposing an option to allow serialization service to be running at a different address?
Use Case
I think it could be valuable to be able to independently configure the endpoint (and by extension the location/environment) where the serializer and executor run. In choosing where to run them you have different factors
-
Serializer - The serializer is stateless. The primary thing you care about is reliability and availability because if the serializer goes down you can't save/open new documents.
-
Executor - Where you run the executor often depends on where you want to execute commands (i.e. resources/files you want to access). For example, you might want to run the executor in a container (Better command execution in Docker #631 and Support executing cells in different gRPC Executor Services - Ephemeral Containers #593) either locally or remotely.
Running the serializer in the same environment as the executor can lead to friction (#593 (comment)) if you can't save/open documents because that environment becomes unavailable (e.g. a container).
Alternatives
One alternative is using WASM to move serialization/deserialization directly into the frontend. In some ways I think that is a superior solution because
- Your serializer is always available
- You don't have to configure/operate a separate serialization service.
I believe the decision was made to try to remove the WASM code path (runmedev/vscode-runme#349) because it was found to have memory leaks and cause other problems.
I think there is some open question as to whether and how to support remote executors and executors in containers (see #631 and #593). Its possible depending on how that shakes out configuring the serializer independently doesn't provide much value.
@sourishkrout thoughts? WDYT about adding an experimental option to specify an alternative endpoint for the serializer?