29,989
events accepted
0 failed29k+ events · open source
Herald is an open-source notification system built on a transactional outbox. One commit writes the event, its timeline, and the outbox. Then every delivery is tracked to a terminal state. 29,989 events in, zero lost.
Free and open source. One command to run.
Each mechanism exists for one reason: a notification must never silently disappear.
The event, its timeline, and the intent to publish commit in a single Postgres statement. Your API returns 202 only after the work is durable.
Don't take our word for it: every figure on this page comes from a run you can repeat with one command.
When a provider times out, you see the whole story (unknown, dead letter, replay, recovered) under one trace ID.
Runs on the stack you already have.
One 10-minute run on a 4-core laptop, not a cloud benchmark. Every number is reproducible from the repository.
29,989
events accepted
0 failed0
accepted events lost
SIGKILL tested4.10s
timeout to replay
same IDAlso measured: 4.3M events/day · 71,052 deliveries · 11.6s p95 · 36s recovery after SIGKILL. Raw results ship with the repo.
Three setups, same guarantee. Pick the smallest one that proves it to you.
One command.
The smallest setup that shows the outbox and the trace end to end.
make demoThe real path.
The full topology: API, workers, and a dataset that behaves like production.
pnpm herald demoBreak it yourself.
Kill processes, replay dead letters, and check that nothing goes missing.
pnpm herald doctorHerald is a local demo shaped like production, not production itself. What is missing is listed here, not hidden.
Read the capacity model →The demo keeps the dependency footprint small. It is not a claim about a multi-region deployment.
Email goes to Mailpit. Push and SMS return scripted outcomes so the failure path is reproducible.
The measured ceiling is 4.3M events/day on the 4-core laptop used for the runs.
Retention deletes in batches. Partitioning is the first change for a larger deployment.
The benchmark, the crash test, and the scenarios are all in the repository, with the raw results beside them.
How the 10-minute ceiling was measured
Read the method →What survived SIGKILL
Read the run →Campaigns, retries, and the failure path
Read the scenarios →Run the demo, trace one notification, and check the receipts yourself.
Free and open source. MIT licensed.