Blog
Engineering notes from the build: the numbers and the trade-offs behind the decisions.
Open Exchange v0.5.0-beta: the durability release
Cluster state stops living only on the box that produced it: snapshots that take themselves, bundles shipped off the machine, and a determinism bug that would have made verifying any of it raise false alarms. Plus the money path twenty four times faster, and two latency numbers we made impossible to confuse.
Read postFour questions an exchange CTO asks, and what our answers actually are
What happens when a node dies, whether the balances exist independently of the machine, how you investigate an incident from three weeks ago, and what changed after our outage. With the parts that are designed but not yet demonstrated marked as exactly that.
Read postOur settlement stopped for seventeen hours and every check stayed green
The scheduler that drives snapshots could only see one of our two clusters, so one of them had never taken a snapshot since it existed. Nothing noticed until a degraded node blocked snapshots on the other one too, the logs filled shared memory, and settlement stopped. Trades kept printing. The canary stayed green for seventeen hours, because it measured that a component was up rather than that work was getting done.
Read postWe run a real crypto exchange for $148/month
The full stack, six Raft nodes plus services, runs on one 4-vCPU box: about 7,500 order submissions per second end-to-end at p50 2.2ms, over a matching core that clears 150k/sec. What $148/month handles, why it is cheap to build on, and how to run your own.
Read postOpen Exchange v0.4.0-beta: the money release
Money moves to its own Raft cluster: the Assets Engine joins as the fifth repo, every money movement lands in a replayable journal, egress becomes totally ordered, and three HIGH CVEs get closed on release day.
Read postThe live demo is now a market: simulated traders, real order books, open 24/7
Sign up at trade.openexchange.dev and trade five crypto markets against a realistic simulated crowd: funded demo balances, price action anchored to real markets, and a rebuilt trading screen. Plus everything else that shipped in the week after beta.
Read postOpen Exchange v0.3.0-beta: the release where we tried to break it
The stack reaches beta: a failover test that kills the leader on every commit, exact money math end to end, a frozen v1 API, secure defaults, and a dated ingress-throughput baseline with published conditions.
Read postThe parts of building an exchange nobody warns you about
What’s actually hard about building an exchange: the durability, precision, and overload problems that sink teams, and the case for not building the core yourself.
Read postRebuilding the order book: array-backed, 281,000 orders/sec, and the OOM bug on the way
How we replaced the matching engine’s order book, what the load tests actually showed, and the out-of-memory bug we found pushing for its limits.
Read post