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/sConfiguration
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.
| Key | Meaning | Default |
|---|---|---|
routerctl.listen | Address the data API binds to | 0.0.0.0:8080 |
routerctl.data_dir | Directory holding every buffer file | /var/lib/routerctl |
limits.max_batch | Largest number of log lines per write | 1024 |
retention.default | How long a log line is kept | 72h |
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.