A self-paced learning project to understand YugabyteDB end-to-end: what it is, how it works internally, and how to build against it.
YugabyteDB is a distributed SQL database that combines PostgreSQL-compatible APIs with the horizontal scalability and resilience of NoSQL systems like Cassandra and Google Spanner.
Work through these in order. Each phase has reading material in docs/ and hands-on exercises in exercises/.
- What is YugabyteDB? — distributed SQL, history, when to use it
- Architecture overview — YB-TServer, YB-Master, DocDB, Raft
- YSQL vs YCQL — the two query layers and when to choose each
- Exercises: YSQL basics and YCQL basics
- Sharding and replication — tablets, leader/follower, Raft groups
- Distributed transactions — hybrid logical clocks, isolation levels
- Performance & tuning — tablet splitting, colocation, indexes
- Setup guide — Docker, native install, multi-node clusters
- Sample app — a Node.js + Fastify service that uses YSQL for an order-management workflow
# Spin up a single-node YugabyteDB locally with Docker
cd setup && docker compose up -d
# Connect via ysqlsh (PostgreSQL-compatible shell)
docker exec -it yugabyte ysqlsh -h yugabyteThen jump into exercises/ysql/01_basics.sql.
- Cheatsheet — common commands and SQL patterns
- Resources — official docs, talks, deep-dive blog posts