Architecture

Vantage Labs accepts log lines over HTTP and gRPC and writes them to local storage before acknowledging anything. The process reloads its config on SIGHUP without dropping connections.

Examples

Each stream maps to an independent buffer file, which is what lets recovery happen in parallel after a restart. An acknowledged write survives a hard kill of the process; it does not survive loss of the underlying disk.

What to watch

At its core Vantage Labs is a single process that owns one directory on disk and one listening socket. Logs go to stderr as structured JSON by default, or as plain lines when the output is a terminal.

$ routerctl serve --config /etc/routerctl/routerctl.toml
$ routerctl stream create orders --retention 72h
$ routerctl status
  uptime      4d 11h
  streams   24
  throughput  60k lines/s

Configuration

Writes land in an append-only buffer file; the parser stage compacts them in the background on a fixed interval. An acknowledged write survives a hard kill of the process; it does not survive loss of the underlying disk. Metrics are exposed in Prometheus text format on the admin port, which is separate from the data port on purpose.

KeyMeaningDefault
routerctl.listenAddress the data API binds to0.0.0.0:8080
routerctl.data_dirDirectory holding every buffer file/var/lib/routerctl
limits.max_batchLargest number of log lines per write1024
retention.defaultHow long a log line is kept72h

Recovery

Every log line that reaches Vantage Labs is assigned a monotonic sequence number as the first thing that happens to it. Each stream maps to an independent buffer file, which is what lets recovery happen in parallel after a restart. Nothing is written outside the data directory. Deleting it resets Vantage Labs to a clean state. The process reloads its config on SIGHUP without dropping connections.