El Event Bus es el sistema de eventos en tiempo real del AI-LAB. Permite que los componentes del runtime emitan eventos estructurados y que los visualizadores los consuman via Server-Sent Events (SSE).

EventoDescripcionDatos asociados
node_onlineNodo GPU conectadohost, modelo, latencia
node_offlineNodo GPU desconectadohost, error
model_selectedModelo elegido para tareamodelo, nodo, tarea, latencia
request_startedPeticion entrante al gatewaymodelo, tarea, timestamp
request_finishedPeticion completadamodelo, tokens, latencia
agent_invokedAgente del Antigravity Kit llamadoagente, tarea, modo
session_createdNueva sesion de inferenciasession_id, modelo, nodo
routing_decisionDecision de ruteotarea, nodo origen, nodo destino
gpu_overheatTemperatura GPU criticagpu, temp_actual, umbral
snapshotEstado completo del cluster (inicial SSE)topologia, docker, gpu
heartbeatLatido cada 3sgpu, topologia, timestamp
from runtime.event_bus import emit, get_history, get_stats
emit("node_online", {"host": "192.168.1.50", "latency_ms": 3})
# Obtener historial
events = get_history(limit=50)
# Estadisticas
stats = get_stats()
# {"total_events": 150, "active_listeners": 2, "event_types": {...}}
Componentes del Runtime
├── Gateway → emit("request_started", data)
├── Router → emit("routing_decision", data)
├── Event Bus (buffer 200 eventos)
│ │
│ ├── SSE endpoint → clientes web
│ └── Historia → GET /api/events/history
└── Listeners (callbacks suscritos)
EndpointMetodoFormatoDescripcion
/api/eventsGETSSEStream continuo de eventos
/api/events/historyGETJSONUltimos 100 eventos + stats
/api/status.jsonGETJSONSnapshot completo del cluster
/api/topologyGETJSONNodos y aristas de la topologia