Downstream Consumers

Dashboard (React SPA, :80)

Redpanda :9092

Go Servers (x2, behind Caddy)

Reverse Proxy / LB

OpenWrt Router

lb

lb

offline

spool

touch

polled by

flush on reconnect

WS frame

publish

publish

publish

publish

static + /api proxy

SSE /api/events/stream

REST /api/command

queued if offline

WebSocket :3843

WebSocket send

client2server-unified.lua

/etc/hotplug.d/{wireless,dhcp}/* scripts

wifi_connected / disconnected

dhcp_lease_new / expire

wan_link / dhcp events

Command Executor

Shared buffer
/var/run/client2server/buffer

wake file
/var/run/client2server/wake

Caddy :80/:443 dashboard
Caddy :3843 API/WS

server1 :3843

server2 :3843

SQLite

SQLite

router-events

router-commands

Login / Overview / Routers
Events / Commands / Alerts

Any Kafka client
(LuIS, analytics, etc.)