Show HN: Ayder HTTP-native durable event log in C (50K msg/s, P99 3ms, Raft HA)(github.com)
github.com
Show HN: Ayder HTTP-native durable event log in C (50K msg/s, P99 3ms, Raft HA)
https://github.com/A1darbek/ayder
1 comments
Author here. Happy to answer questions about the implementation.
A few details that might interest HN: - Raft replication handles 50K msg/s with sync-majority writes - HTTP parsing is 0.4ms at P99.999 (picohttpparser, zero-copy) - Tested durability with SIGKILL — recovery replays sealed AOF
What would you want from an HTTP-native event log?
A few details that might interest HN: - Raft replication handles 50K msg/s with sync-majority writes - HTTP parsing is 0.4ms at P99.999 (picohttpparser, zero-copy) - Tested durability with SIGKILL — recovery replays sealed AOF
What would you want from an HTTP-native event log?
No JVM, no ZooKeeper, no thick client libraries. Just HTTP.
What it does: append-only log with per-partition offsets, consumer groups, durable writes via sealed AOF + crash recovery, HA with Raft consensus (3/5/7 nodes), leader redirects, idempotent produce, KV store with CAS + TTL.
Benchmarks (real network, 3-node Raft, DigitalOcean 8 vCPU, wrk2, 64B payload):
Server-side P99.999 is 1.2ms — the tail you see in benchmarks is network/kernel, not the broker.
Curious finding: real NIC beats loopback at high concurrency (P99 3.31ms vs 5.79ms). Makes sense — loopback means client and server fight for CPU cores.
I'd love feedback on: API shape, HA ergonomics, what you'd expect from "durable event log over HTTP" in 2025.
Happy to discuss implementation details — Raft catch-up, AOF format, zero-copy parsing, whatever interests you.