Simple by design.
No clusters. No partitions. No consumer groups. No YAML. Four concepts, one binary.
01
Push
Send any JSON over HTTP. No schemas, no topics, no setup. Events are timestamped and stored instantly.
02
Pipe
Create live pipes that filter and route events into focused streams. One firehose in, many streams out.
03
Query
A Unix-inspired query language. Chain operators with pipes. Results stream back in real time.
04
Ship
Deploy as a single binary. Integrate with your apps via HTTP and SSE. Route events to webhooks, storage, or anywhere with pipes.
$ tailpush
$ curl -X POST localhost:3000/v1/events/push \
-d '{"type":"user.signup","email":"alice@example.com"}'
{"ok":true,"stream":"events","appended":1,"offset":1}
$ curl -N localhost:3000/v1/events/tail
data: {"offset":1,"ts":"2026-02-28T14:00:00Z","data":{"type":"user.signup",...}}
$ curl -X POST localhost:3000/v1/events/query \
-d 'scan(-1h) | filter(type = error) | count()'
{"count": 42}
$ curl -X POST localhost:3000/v1/pipes \
-d '{"source":"events","destination":"errors","pipeline":"filter(type = error)"}'