What is the Jupyter kernel, and how does it work?
Sep 26, 2023

Summary
This post introduces the concept of the Jupyter kernel as a computational engine, explaining its decoupled architecture from the frontend. It details the communication protocols (WebSockets, ZeroMQ) and the five ZeroMQ sockets (shell, IOPub, stdin, control, heartbeat) used for interaction. A practical guide to building a basic 'echo' kernel is provided, demonstrating the `do_execute` function and the use of the IOPub socket for sending output.