Client libraries

At its core Basalt Field is a single process that owns one directory on disk and one listening socket. Everything the admin API exposes is also reachable through `basalt`, so the same operation is scriptable either way.

Limits

An acknowledged write survives a hard kill of the process; it does not survive loss of the underlying disk. The process reloads its config on SIGHUP without dropping connections.

KeyMeaningDefault
basalt.listenAddress the data API binds to0.0.0.0:8080
basalt.data_dirDirectory holding every log segment/var/lib/basalt
limits.max_batchLargest number of events per write1024
retention.defaultHow long a event is kept72h

What to watch

Basalt Field accepts events over HTTP and gRPC and writes them to local storage before acknowledging anything. The replay worker keeps an in-memory index and rebuilds it from the log segment at startup, which costs about a second per gigabyte. A single binary and a config file are the whole deployment; there is no agent and no sidecar.

$ basalt serve --config /etc/basalt/basalt.toml
$ basalt topic create orders --retention 72h
$ basalt status
  uptime      4d 11h
  topics   23
  throughput  10k events/s

Defaults

Every event that reaches Basalt Field is assigned a monotonic sequence number as the first thing that happens to it. Retention is enforced on read as well as on the background pass, so an expired event 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.

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

What to watch

Reads are served from a memory-mapped view of the log segment, so the page cache does the caching and Basalt Field does not duplicate it. Ordering is guaranteed within a topic and explicitly not guaranteed across them. Everything the admin API exposes is also reachable through `basalt`, so the same operation is scriptable either way.

Note. The default limits are conservative. Raising them is expected, and the reference below explains what each one actually bounds.