Sequence Diagrams#
The following consists of various sequence diagrams you might find helpful. We plan to add diagrams based on demand and contributions.
Kernel launch: Jupyter Lab to Enterprise Gateway#
This diagram depicts the interactions between components when a kernel start request is submitted from Jupyter Lab running against Jupyter Server configured to use Enterprise Gateway. The diagram also includes the retrieval of kernel specifications (kernelspecs) prior to the kernel’s initialization.
sequenceDiagram
participant JupyterLab
participant JupyterServer
participant EnterpriseGateway
participant ProcessProxy
participant Kernel
participant ResourceManager
Note left of JupyterLab: fetch kernelspecs
JupyterLab->>JupyterServer: https GET api/kernelspecs
JupyterServer->>EnterpriseGateway: https GET api/kernelspecs
EnterpriseGateway-->>JupyterServer: api/kernelspecs response
JupyterServer-->>JupyterLab: api/kernelspecs response
Note left of JupyterLab: kernel initialization
JupyterLab->>JupyterServer: https POST api/sessions
JupyterServer->>EnterpriseGateway: https POST api/kernels
EnterpriseGateway->>ProcessProxy: launch_process()
ProcessProxy->>Kernel: launch kernel
ProcessProxy->>ResourceManager: confirm startup
Kernel-->>ProcessProxy: connection info
ResourceManager-->>ProcessProxy: state & host info
ProcessProxy-->>EnterpriseGateway: complete connection info
EnterpriseGateway->>Kernel: TCP socket requests
Kernel-->>EnterpriseGateway: TCP socket handshakes
EnterpriseGateway-->>JupyterServer: api/kernels response
JupyterServer-->>JupyterLab: api/sessions response
JupyterLab->>JupyterServer: ws GET api/kernels
JupyterServer->>EnterpriseGateway: ws GET api/kernels
EnterpriseGateway->>Kernel: kernel_info_request message
Kernel-->>EnterpriseGateway: kernel_info_reply message
EnterpriseGateway-->>JupyterServer: websocket upgrade response
JupyterServer-->>JupyterLab: websocket upgrade response