GopherCon Singapore 2018
A from-scratch mental model for distributed databases in Go.
Deck outline
- Layers: file → KV → SQLite → relational
- When MySQL/Postgres are not enough (custom indexes, domain query languages)
- Use cases: blockchains, trading, logs, metrics
- Go examples: Influx, Prometheus, Vulcan, Ethereum, etcd, Consul
- Architecture: consensus (Raft/Paxos/BFT), storage (LevelDB/Rocks/Bolt), query layer
- Starting points: HashiCorp Raft, etcd Raft, toy SQL parsers
For people who want to build storage systems, not only use them.