Overview of the Dora WebSocket Control Plane
mainDora uses a single Axum-based WebSocket server to facilitate all communication between the CLI, coordinator, and daemons. This replaces a multi-port TCP design with a unified interface using JSON text frames for control messages and binary frames for topic data.
Key Routing Information
/api/control(CLI): Used by the CLI to send commands and receive replies./api/daemon(Daemons): Used by daemons for registration, event reporting, and receiving commands./health(HTTP GET): Health check endpoint.
Protocol Constraints
- Wire Format: JSON text frames (control) and binary frames (topic data).
- Protocol Pattern: UUID-correlated request-reply for commands, and fire-and-forget for events (like log streaming).
- Message Size Limit: 1 MiB (
MAX_CONTROL_MESSAGE_BYTES). - Concurrency Limit: 256 connections (
MAX_WS_CONNECTIONS).