Skip to content

Interactive Architecture Diagram

A live, clickable map of the TALOS components, the messages they exchange, and the roadmap items and tests that touch each one. Filter by roadmap version or test category, click any node to drill down to its source files on GitLab.

Open the interactive diagram ↗{ target="_blank" }

The diagram lives outside the Material content area so it can use the full viewport. Use the link above to open it in a new tab.

What it shows

  • Components (12 nodes) -- Browser, Core API, PostgreSQL, MQTT broker, Director, Stream Router, Agent, Hamlib daemons, GNU Radio flowgraph, YAMCS, SatNOGS, CelesTrak.
  • Edges with protocol labels (HTTPS, MQTT, TCP/Hamlib, UDP, ZMQ).
  • Roadmap items that introduced or modified each component, parsed directly from docs/ROADMAP.md.
  • Test files linked to components, with their CI job category from .gitlab-ci.yml.

How to use it

  • Click any component node to open the right-hand detail panel showing the description, GitLab links to every source file, the full list of roadmap items it owns, the linked test files, and every edge it participates in.
  • Toggle the Roadmap version chips on the left to keep only the components touched by selected versions.
  • Toggle the Test category chips to keep only components covered by a particular CI job (test-unit, test-app, test-integration, test-agent, test-stream, test-hil, etc.).
  • Toggle the Group chips to hide whole layers (e.g. show only edge components).
  • Selected filters and the open node id are written to the URL hash so the view is shareable.

How it stays up to date

The diagram is regenerated by ci/generate_architecture.py on every push to master, as part of the existing pages: job. The generator reads:

Source What it pulls
docs/architecture/spec.yaml manual list of components, edges, file references, roadmap-item IDs
docs/ROADMAP.md versions, items, statuses, priorities
docs/CHANGELOG.md release dates and per-version item references
tests/ directory test file -> CI job mapping

If you add a new component, update spec.yaml and the diagram will pick it up on the next push. If you only update the roadmap or changelog, the diagram refreshes automatically -- the existing pages: job already runs on every master commit and tag.

Running it locally

make architecture       # regenerate docs/architecture/data.json
make docs               # build the full mkdocs site (depends on architecture)
python -m http.server -d site 8000
# Then open http://localhost:8000/architecture/index.html