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