Size / Priority
- Size: L — UI work + framework integration.
Rationale
Operators monitoring a live cluster benefit from a visual topology: which nodes, which shards, what's the gossip flow, what messages are slow. Akka had this via separate tools; for a self-contained "open browser → see cluster" experience, ship a small SPA in the package.
Design sketch
- Backend: extend management HTTP endpoint with
/cluster/visualizer/* routes.
- WebSocket: stream live cluster events (member up/down, shard moves, gossip ticks, hot-actor mailbox depths).
- SPA: small React/Svelte/Vue bundle served from
/cluster/visualizer. ~200KB gzipped target.
- Views:
- Topology graph (nodes + connections).
- Shard distribution heatmap.
- Recent gossip / membership changes.
- Per-actor hot-list (highest mailbox depth, slowest handlers).
- Cluster events timeline.
Integration
Out of scope / non-goals
- Production-grade monitoring — that's Prometheus/Grafana. This is dev/diagnostics.
- Auth — relies on existing management-endpoint auth.
Open design questions
- Framework choice for SPA: React (familiar), Svelte (smaller bundle), or vanilla. Recommend Svelte.
- Topology layout: force-directed vs ring vs custom. Recommend force-directed.
- Update rate: 1Hz vs higher. Recommend 1Hz default.
Test plan
- Open
/cluster/visualizer → topology renders.
- Membership change reflected within 1s.
- Shard move animates.
- Hot-actor list updates.
- Bundle size ≤ 200KB gzipped.
- Works without external CDN (everything bundled).
Acceptance criteria
Pre-implementation checklist
Size / Priority
Rationale
Operators monitoring a live cluster benefit from a visual topology: which nodes, which shards, what's the gossip flow, what messages are slow. Akka had this via separate tools; for a self-contained "open browser → see cluster" experience, ship a small SPA in the package.
Design sketch
/cluster/visualizer/*routes./cluster/visualizer. ~200KB gzipped target.Integration
ClusterEvents: stream over WebSocket.Out of scope / non-goals
Open design questions
Test plan
/cluster/visualizer→ topology renders.Acceptance criteria
/cluster/visualizerSPA + supporting endpoints.Pre-implementation checklist