I write about distributed systems, trading systems, and pragmatic software engineering. Originally published on my own site; this is the canonical source.
Welcome to This Blog
This is the first post on the English side of hancic.site. Why another blog The Chinese blog at blog.hancic.site has been running for a while. Some of the topics — distributed systems, trading systems, and engineering practice — are interesting to a global audience too. So here we are: an English blog, written without a translation step. What to expect Systems engineering and architecture notes Trading systems and quant tooling Occasional tooling and self-hosting stories Comments Comments run on giscus, powered by GitHub Discussions — feel free to drop a note below! ...
Where Distributed Systems Complexity Comes From
Three machines in a rack are still three machines. They become a distributed system when they have to finish one job together, and that requirement is where the trouble starts. On a single machine you get three things for free. Every thread shares the same memory, so a write lands and everyone sees it. One clock puts every event in order. One lock protects the shared state. Move that job across a network and all three disappear. ...