System Design

System Architecture

Requirements, cluster organization and principal services of the EPIC real-time sky-monitoring system at LWA-SV.

The imager described in The LWA-SV Imager is one component of a larger system. That system, designated "Alchemist" (Reddy et al. 2024), turns six independent imaging pipelines into a continuously operating sky monitor. It is responsible for:

  • deploying and configuring the imagers;
  • maintaining the list of monitored sources;
  • storing and serving the extracted data;
  • distributing the live video;
  • monitoring the health of every component.

This section describes the deployed system. The configuration is maintained as infrastructure code in the epic-sv-devops repository.

Requirements

The design follows from the data rates of the imager and from the scientific use of its products (Reddy et al. 2024).

RequirementConsequence for the design
Six imagers, each processing one 3.2 MHz sub-band at 80 ms cadenceOne GPU node per F-engine sub-band; nodes operate independently
Full images would amount to ≈110 TB per dayOnly pixel patches around watched sources are retained at full cadence; full images are archived as longer accumulations
≈7 × 10⁶ pixel rows per hour per source; ≳10⁹ rows per day in totalA distributed, time-partitioned database with a fixed retention period
Pixel data retained for six months; accumulations and video retained permanentlyAutomated partition management; network storage for files
Follow-up of external alerts (CHIME/FRB, DSA-110, realfast, LIGO/Virgo/KAGRA)A watch-list service that accepts time-limited entries
Unattended, continuous operationDeclarative scheduling, automatic restarts, service discovery, metrics and alerting
Portability to other compact arraysAll provisioning expressed as reproducible configuration (Ansible)

Cluster organization

The system follows a client–server model. A coordinator node schedules work and hosts the shared services, and six compute nodes execute the imaging pipelines. Compute nodes are added by provisioning them and joining them to the cluster; services discover one another through Consul, so no static configuration needs to change.

NodeCountRolePrincipal services
Coordinator (epic-sv)1Control plane, shared services, storageNomad, Consul and Vault servers; PostgreSQL/Citus coordinator; watchdog; Prometheus and Alertmanager; PeerTube; Waterfalls; reverse proxy; NFS export
Compute (epic1–epic6)6ImagingNomad and Consul clients; one epic++ imager with one GPU; Citus worker; RTMP media server; video transcoding runner; metrics exporters

The nodes are connected by two networks:

  • Station data network. Carries the F-engine multicast at 100 GbE. Each compute node subscribes to one sub-band.
  • Cluster network. Carries scheduling, database, metrics and video traffic.

All nodes mount a shared file system exported by the coordinator over NFS. This file system holds the database storage, the build artifacts, the monitoring data and the archived data products.

Architecture of the EPIC system at LWA-SV Each compute node runs an imager that receives F-engine data, takes its configuration and secrets from the control plane and its watch list from the watchdog, writes pixel rows to the distributed database, and sends video through a media server to EPIC TV; the Waterfalls application queries the database and records external alerts that the watchdog turns into watch-list entries. COMPUTE NODE ×6COORDINATORMULTICASTVIDEORTMPCONFIGURATIONWATCH LISTPIXEL ROWSWATCH TABLEQUERIESCHIME/FRB ALERTSSOURCEStation F-engine6 sub-bands · 100 GbEGPUepic++ imagerNomad job · one per nodeRTMPMedia serverNode-Media-ServerCONTROLNomad · Consul · Vaultjobs · config · secretsGRPCWatchdogwatch-list serviceMETRICSMonitoringPrometheus · AlertmanagerCITUSPixel databasePostgreSQL · 7 nodesWEBEPIC TVPeerTube live streamWEBWaterfallsNuxt · FastAPILEGENDINPUTIMAGERSERVICEDATA STOREPUBLIC SERVICE
Figure 3. Architecture of the EPIC system at LWA-SV. One of the six identical compute nodes is shown. Dashed connectors denote configuration and external alerts. Prometheus collects metrics from every service, including the imager; those connectors are omitted for clarity.

Principal services

The services shown in Figure 3 fall into five groups. Each is described on the page indicated.

GroupServicesDescription
OrchestrationNomad, Consul, VaultScheduling of all jobs, service discovery, configuration store, secrets (Orchestration)
Imagingepic++ imager, build jobOne imager per compute node; nightly build from the phoenix branch (Orchestration)
DataCitus database, watchdog, network storagePixel spectrograms, session metadata, watch list, archived images (Data Management)
DistributionMedia servers, PeerTube, WaterfallsLive video and web access to spectrograms (Video and Web Services)
OperationsPrometheus, Alertmanager, Grafana, AnsibleMetrics, alerting, dashboards and provisioning (Monitoring and Operations)

Flow of data through the system

The path from the telescope to a stored product is as follows (Figure 3):

  1. The station F-engine multicasts channelized voltages for six sub-bands.
  2. On each compute node, the imager subscribes to its sub-band and forms images (see Imager Pipeline).
  3. The imager obtains the watch list from the watchdog over gRPC. It extracts the pixel patches of visible sources and inserts them into the distributed database.
  4. Accumulated images are written as FITS files to network storage.
  5. A video stream of each sub-band is published to a local media server. Scheduled streaming jobs forward it to the PeerTube instance (EPIC TV).
  6. The Waterfalls application queries the database for spectrograms and accepts alerts from external facilities. Those alerts are recorded as time-limited entries, which the watchdog adds to the watch list.

Throughout, every service exports metrics to Prometheus, which evaluates alert rules and notifies the operators.


Copyright © 2026. All rights reserved.