Skip to content

Multiple runtime kernels in a repo

Hebi Li edited this page Dec 13, 2022 · 1 revision

Single python runtime

The runtime web-socket is:

wss://app.codepod.io/runtime/sessionID

The proxy will route this to the specific runtime container. The runtime container has two parts:

  • A web-socket listener and proxy the eval request to ZMQ socket
  • The kernel itself listening on ZMQ socket

Multiple language runtime

The runtime container will be:

  • A web-socket listener, which create multiple ZMQ wires, each to a language kernel
    • A python kernel
    • A typescript kernel
    • A Julia kernel

The web socket is still:

wss://app.codepod.io/runtime/sessionID

Each WS message will contain a lang option.

Supporting multiple versions of a language.

In the UI, one can configure the desired kernels in each repo. We'll launch a kernel for each of them. These can be kernels of the same language but different versions.

When configuring the lang of a pod, we will specify not only languages but also versions. The list of choices will be the configured kernels.