Real-Time Streaming
Production - WebSocket streaming for live BI responses
The Streaming system delivers real-time analytics responses through WebSocket connections, enabling progressive result delivery as SQL executes and analysis completes.
12.4.9.1WebSocket Protocol
const ws = new WebSocket("ws://localhost:8000/api/v1/bi/ws");
ws.onopen = () => {
ws.send(JSON.stringify({
type: "query",
session_id: "sess-123",
tenant_id: "acme-corp",
message: "Show revenue trends for 2024"
}));
};
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
switch (msg.type) {
case "status": // Agent processing status
case "sql": // Generated SQL
case "data": // Query results (streaming rows)
case "chart": // Visualization specification
case "insight": // Analysis insight
case "complete": // Processing complete
case "error": // Error occurred
}
};Stream Message Types
| Type | Payload | Description |
|---|---|---|
status | {agent: "sql", status: "generating"} | Processing status update |
sql | {sql: "SELECT...", confidence: 0.87} | Generated SQL query |
data | {rows: [...], columns: [...]} | Query result data |
chart | {type: "line", x: "month", y: "revenue"} | Chart specification |
insight | {text: "Revenue grew 15%..."} | Analysis insight |
complete | {execution_time_ms: 2340} | Processing complete |
error | {message: "Query timeout"} | Error details |