Vortex TSDB is a distributed time series database for live metrics. Push numbers over HTTP;
read per-minute aggregates, instant values and tumbling or sliding windows. Every node holds the
whole dataset in memory.
Live metrics — devices online, API QPS, orders, temperatures — need exact counts from many
writers, aggregation by the minute and over any window, and a service that survives a dead node.
General-purpose TSDBs do this with a disk engine, a query language and several components; Vortex
does only this layer, in memory, behind plain HTTP.
Pain
Vortex
Many components to deploy and run
One service + optional Redis; docker compose up -d
Counts drift under concurrent writers
Writes serialised on the leader, then replicated: exact, no locks
Windows need tables or a query language
range · step · window · z, folded at read time
One node down, service down
Full replica on every node; new leader in ~5 s
Memory grows with every series
Per-node key limit; overflow to Redis
3. Quick Start
Free on Docker Hub and GHCR · linux/amd64 + linux/arm64 · no JDK, Node or build needed
curl -fsSLO https://raw.githubusercontent.com/paganini2008/vortex/main/deploy/docker-compose.yml
docker compose up -d# 3 nodes + web console + gateway
curl -X POST 'http://localhost:9080/tsd/push?t=long&c=car&d=speed&v=44'
curl 'http://localhost:9080/tsd/last?t=long&c=car&d=speed'
for v in 44 67 112; do curl -X POST "localhost:9080/tsd/push?t=long&c=car&d=speed&v=$v"; done then curl 'localhost:9080/tsd/retrieve?t=long&c=car&d=speed&z=Asia/Shanghai'
Execution
Three samples land in one minute bucket; retrieve returns the latest 60 buckets in zone z
Top comments (0)