LUMA · ARCHITECTURE

platform blueprint · data model · tech stack

Backend & Data Platform

The Luma Optics digital twin is a streaming control plane over an AI training fabric. Telemetry flows from eBPF probes on whitebox switches through Kafka into a Flink RCA pipeline, which writes durable state to TimescaleDB + Postgres and pushes healing actions back to the edge via a Temporal workflow guarded by a policy lookup table.

Runtime Flow

Telemetry → RCA → Policy LUT → Edge Remediation
stage 1
Optical Edge
  • · OSFP-800G DDM
  • · eBPF probe
  • · gNMI push
stage 2
Stream Bus
  • · Kafka topics
  • · Protobuf frames
  • · OTel spans
stage 3
RCA Engine
  • · Flink windows
  • · XGBoost classifier
  • · Signature match
stage 4
Policy LUT
  • · Redis O(1)
  • · Risk-tier gate
  • · Human override
stage 5
Healing Workflow
  • · Temporal.io
  • · Rollback safe
  • · Edge RPC
stage 6
Digital Twin UI
  • · SSE stream
  • · React 19
  • · Grafana embeds

Multi-Vendor Telemetry · A-Side / Z-Side

4 of 6 endpoints streaming · normalized to canonical schema
link-01bi-directional · skew 15Hz
A-side · EOS 4.32+
OpenConfig gNMI · Protobuf/JSON
800G OSFP
Z-side · Cumulus / MLNX-OS
SDK/NetQ + gNMI · JSON/Protobuf
link-02partial coverage
A-side · Junos EVO
JTI / gRPC gNMI · Protobuf
800G OSFP
Z-side · NX-OS / IOS-XR
MDT / gNMI · Protobuf (KV/GPB)
link-03partial coverage
A-side · SR Linux
gNMI streaming · Protobuf
800G OSFP
Z-side · EOS 4.32+
OpenConfig gNMI · Protobuf/JSON

Telemetry Normalization Matrix

vendor path → luma canonical field
CanonicalUnitJuniperAristaNVIDIA MellanoxCiscoNokia
link.rate_gbpsGbpsinterfaces/interface/state/negotiated-port-speedSysdb/interface/counter/eth/.../speedsx_api_port_speed_get()Cisco-IOS-XR-.../interface/data-rates/bandwidthsrl_nokia-interfaces:ethernet/port-speed
link.berlog10components/optical-channel/state/pre-fec-berSmash/interfaces/optical/preFecBermlxlink --show-fec-histogramCisco-.../optics-oper/bit-error-ratecomponents/transceiver/channel/state/pre-fec-ber
optic.rx_power_dbmdBmcomponents/transceiver/physical-channels/.../input-powerSysdb/hardware/xcvr/.../rxPowerethtool -m rx_powerCisco-.../optics-oper/rx-powercomponents/transceiver/channel/state/input-power
optic.temp_c°Ccomponents/component/state/temperature/instantSysdb/environment/xcvr/temperaturesx_api_module_temperature_get()Cisco-.../env-oper/temp/currentcomponents/transceiver/state/temperature
port.flap_rate_per_minflaps/mininterfaces/interface/state/counters/carrier-transitions ΔSmash/interface/counter/linkStatusChanges Δport-toggle-count ΔCisco-.../generic-counters/link-flaps Δinterfaces/interface/state/last-change Δ
Juniper
os: Junos EVO
proto: JTI / gRPC gNMI
enc: Protobuf
models: OpenConfig + jnpr
default: 10 Hz
Arista
os: EOS 4.32+
proto: OpenConfig gNMI
enc: Protobuf/JSON
models: OpenConfig + Arista
default: 5 Hz
NVIDIA Mellanox
os: Cumulus / MLNX-OS
proto: SDK/NetQ + gNMI
enc: JSON/Protobuf
models: OpenConfig + NetQ
default: 20 Hz
Cisco
os: NX-OS / IOS-XR
proto: MDT / gNMI
enc: Protobuf (KV/GPB)
models: YANG (Cisco-NX)
default: 2 Hz
Nokia
os: SR Linux
proto: gNMI streaming
enc: Protobuf
models: OpenConfig + Nokia
default: 10 Hz

Technology Stack

Best-of-breed OSS glued by a thin control plane

Edge / Layer 1 Agents

  • Rust + eBPFsub-ms flap detection

    In-switch telemetry probe

  • gNMI / OpenConfig

    Streaming model-driven telemetry

  • SONiC + FRR

    Whitebox NOS with policy hooks

  • OSFP-800G DDM

    Digital diag monitoring (BER, Rx, Tx bias, temp)

Ingest & Streaming

  • Apache Kafka

    Telemetry bus · 1.2M msg/s peak

  • Apache Flink

    Windowed anomaly + flap-rate aggregation

  • Protobuf

    Wire format for telemetry frames

  • OpenTelemetry

    Trace + span correlation across fabric

Storage & Model

  • TimescaleDB

    Hypertables for per-link telemetry (14-day hot)

  • PostgreSQL 16

    Topology, inventory, policies, incidents

  • Neo4j

    Fabric graph · shortest-path / blast-radius queries

  • S3 + Parquet

    Cold telemetry archive for model training

Intelligence & Control

  • PyTorch + XGBoost

    RCA classifier · 42 signature types

  • Policy LUT (Redis)

    O(1) signature → remediation action

  • Temporal.io

    Durable healing workflows w/ rollback

  • Grafana + Prom

    Operator dashboards & SLO alerts

Frontend Twin

  • React 19 + TanStack Start

    SSR digital twin console

  • Tailwind v4

    Design system · obsidian theme

  • SVG + Canvas

    Topology & telemetry rendering

  • WebSocket / SSE

    Live link-state push from Flink

Data Model · Entity Relationships

Postgres core (blue) · TimescaleDB telemetry (violet) · policy (amber) · audit (green)
fabriccore★ iduuid nametext regiontext topologyenumdevicecore★ iduuid→ fabric_iduuid roleenum(spine,leaf,gpu) serialtext nos_versiontextportcore★ iduuid→ device_iduuid ifnametext speed_gbpsinttransceivercore★ iduuid→ port_iduuid vendortext part_notext form_factorenum(OSFP,QSFP-DD)linkcore★ iduuid→ a_port_iduuid→ z_port_iduuid stateenumlink_telemetrytelemetry★ tstimestamptz→ link_iduuid berfloat8 rx_dbmfloat4 temp_cfloat4 flap_ratefloat4fault_signaturecontrol★ idtext patternjsonb confidence_minfloat4policy_lutcontrol★ iduuid→ signature_idtext actionenum risk_tierintincidentaudit★ iduuid→ link_iduuid→ policy_iduuid opened_attimestamptz healed_attimestamptz outcomeenum
core topologytimeseries (Timescale hypertable)control / policyaudit / incident★ primary key · → foreign key
Telemetry ingest
1.2M msg/s
RCA p95 latency
180 ms
Policy LUT lookup
O(1) · 40µs
Hot retention
14 days