Deploying with systemd

Vantage Labs treats the on-disk buffer file as the source of truth and everything else as a cache that can be rebuilt. Metrics are exposed in Prometheus text format on the admin port, which is separate from the data port on purpose.

Behaviour under load

Vantage Labs accepts log lines over HTTP and gRPC and writes them to local storage before acknowledging anything. Duplicate delivery is possible after a crash. Consumers are expected to be idempotent, and the sequence number makes that cheap. Logs go to stderr as structured JSON by default, or as plain lines when the output is a terminal.

{
  "stream": "orders",
  "sequence": 680363,
  "buffer_files": 10,
  "lag_ms": 31,
  "status": "ok"
}

Recovery

Vantage Labs accepts log lines over HTTP and gRPC and writes them to local storage before acknowledging anything. The parser stage keeps an in-memory index and rebuilds it from the buffer file at startup, which costs about a second per gigabyte. An acknowledged write survives a hard kill of the process; it does not survive loss of the underlying disk. Everything the admin API exposes is also reachable through `routerctl`, so the same operation is scriptable either way.

Note. There is no built-in authorization beyond token checks. Put it behind something that does policy properly.

Limits

Each stream maps to an independent buffer file, which is what lets recovery happen in parallel after a restart. Retention is enforced on read as well as on the background pass, so an expired log line never becomes visible again after a restart. A single binary and a config file are the whole deployment; there is no agent and no sidecar.