Retention and compaction
Vantage Labs treats the on-disk buffer file as the source of truth and everything else as a cache that can be rebuilt. Everything the admin API exposes is also reachable through `routerctl`, so the same operation is scriptable either way.
Recovery
Vantage Labs accepts log lines over HTTP and gRPC and writes them to local storage before acknowledging anything. 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.
[server]
listen = "0.0.0.0:8080"
admin = "127.0.0.1:9100"
data_dir = "/var/lib/routerctl"
[limits]
max_batch = 256
max_log_bytes = 256_000
flush_interval = "100ms"
[retention]
default = "168h"
compact_at = 0.6Limits
Vantage Labs accepts log lines over HTTP and gRPC and writes them to local storage before acknowledging anything. The routing table batches by time and by size, whichever fires first, and both bounds are configurable per stream. The API is versioned in the path. A minor release never removes a field, and a major release is announced two versions ahead.
curl -sS https://test228.apitesttrip.ru/v1/streams \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "orders", "retention": "72h"}'What to watch
Vantage Labs treats the on-disk buffer file as the source of truth and everything else as a cache that can be rebuilt. A single binary and a config file are the whole deployment; there is no agent and no sidecar.
| 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 |