← Cycles
Qflow · c10

Real Data

activecreated 2026-03-23· last activity 2026-08-15

New in this cycle: Actor-based scenarios — typed actors with rich metadata, type-colored nodes

Why

The mock data system (c5-c8) used hardcoded IP arrays with flat audit-log objects. Real data from qmap uses rich actor types (app/vendor/dataset/service) with tags, topology, and typed connections. Dev-tools SSE provides raw IP-based flows. c10 formalizes the data layer to support both formats.

What Changed

New: data/ module system

  • actors.js — 15 apps, 6 services, 12 vendors, 6 datasets with full qmap-compatible metadata (tags, topology, urls)
  • connections.js — Type-based connection weights (app->service: 0.4, service->dataset: 0.4, etc.), seeded PRNG pool generator
  • scenarios.js — 5 presets: tiny (5), small (15), medium (30), large (39), devtools (29 IP-based actors)
  • generator.js — createFlowGenerator(scenario) replaces createTrafficGenerator(). Emits rich flow records with full actor references + backward-compat flat keys

Flow record format

Each generated flow carries both rich actor refs and flat keys:

{
  source: { id, type, name, tags, url },     // full actor
  destination: { id, type, name, tags, url }, // full actor
  sourceAddress: source.id,                   // flat lookup key
  destinationAddress: destination.id,         // flat lookup key
  method, action, direction, port, protocol,
  tags: { flow: ["app->vendor"], team: ["platform"], ... }
}

Updated: App.vue

  • Scenario selector in controls panel (resets scene on change)
  • Actor-aware player creation: name from actor, color from type, favicon from url
  • Color by type: apps=blue, vendors=pink, datasets=green, services=amber
  • Removed destinationMeta dependency

Updated: NodeRegistry.js

  • Stores actor reference alongside request totals (replaces exe/meta fields)

Key Design Decisions

  • Actor IDs (e.g. app-api-gateway) replace IPs as node lookup keys
  • devtools scenario bridges to raw SSE format by wrapping IPs in actor objects
  • LiveFeed.js unchanged — its { next() } contract is generator-agnostic
  • Self-contained actor data curated from qmap (not imported)

Visual record

9 captures — heroes, page slices, and full-page renders. Click to view.

Medium scenario (30 actors) at ~12s
Medium scenario (30 actors) at ~12s
Tiny scenario — 5 actors, intimate scale
Tiny scenario — 5 actors, intimate scale
Small scenario — 15 actors
Small scenario — 15 actors
Large scenario (39 actors) mid-discovery
Large scenario (39 actors) mid-discovery
Dev Tools (raw) — real tool traffic shapes
Dev Tools (raw) — real tool traffic shapes
Dev Tools with isometric trails
Dev Tools with isometric trails
c10 hero
Large fully populated
Large fully populated
Medium fully discovered (~25s)
Medium fully discovered (~25s)

Artifacts

/experiments/c10.real-data/ (local dev)

Qpoint Brand Style Guide