Quickstart

The design goal was a log router that one person can operate and one person can debug. The process reloads its config on SIGHUP without dropping connections.

Recovery

The buffer manager batches by time and by size, whichever fires first, and both bounds are configurable per stream. Upgrades are in place: stop, replace the binary, start. The on-disk format is forward compatible within a major version.

{
  "stream": "orders",
  "sequence": 895139,
  "buffer_files": 3,
  "lag_ms": 10,
  "status": "ok"
}

Limits

At its core Vantage Labs is a single process that owns one directory on disk and one listening socket. The parser stage keeps an in-memory index and rebuilds it from the buffer file at startup, which costs about a second per gigabyte. Logs go to stderr as structured JSON by default, or as plain lines when the output is a terminal.

{
  "stream": "orders",
  "sequence": 445185,
  "buffer_files": 7,
  "lag_ms": 19,
  "status": "ok"
}

Defaults

Backpressure is explicit: when the buffer manager falls behind, Vantage Labs returns 429 rather than buffering without bound. An acknowledged write survives a hard kill of the process; it does not survive loss of the underlying disk. Logs go to stderr as structured JSON by default, or as plain lines when the output is a terminal.

{
  "stream": "orders",
  "sequence": 389074,
  "buffer_files": 23,
  "lag_ms": 1,
  "status": "ok"
}

Overview

The routing table keeps an in-memory index and rebuilds it from the buffer file at startup, which costs about a second per gigabyte. Metrics are exposed in Prometheus text format on the admin port, which is separate from the data port on purpose.

{
  "stream": "orders",
  "sequence": 959569,
  "buffer_files": 7,
  "lag_ms": 17,
  "status": "ok"
}