Build your own distributed database

GopherCon Singapore · 2018 · Singapore · 2018-05-05
godatabasesdistributed-systems video

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.