https://github.com/gsaini/yugabyte-getting-started
A self-paced learning project for YugabyteDB — distributed SQL concepts, architecture deep-dives, hands-on YSQL/YCQL exercises, and a Node.js + Fastify sample app.
https://github.com/gsaini/yugabyte-getting-started
acid-transactions database distributed-sql distributed-systems docker fastify learning-project nodejs postgresql raft ycql ysql yugabytedb
Last synced: 9 days ago
JSON representation
A self-paced learning project for YugabyteDB — distributed SQL concepts, architecture deep-dives, hands-on YSQL/YCQL exercises, and a Node.js + Fastify sample app.
- Host: GitHub
- URL: https://github.com/gsaini/yugabyte-getting-started
- Owner: gsaini
- License: mit
- Created: 2026-05-22T02:32:39.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-26T02:52:05.000Z (29 days ago)
- Last Synced: 2026-06-14T23:34:31.829Z (9 days ago)
- Topics: acid-transactions, database, distributed-sql, distributed-systems, docker, fastify, learning-project, nodejs, postgresql, raft, ycql, ysql, yugabytedb
- Language: JavaScript
- Size: 36.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# YugabyteDB — Getting Started






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.
## Learning Roadmap
Work through these in order. Each phase has reading material in [docs/](docs/) and hands-on exercises in [exercises/](exercises/).
### Phase 1 — Foundations
- [What is YugabyteDB?](docs/01-introduction.md) — distributed SQL, history, when to use it
- [Architecture overview](docs/02-architecture.md) — YB-TServer, YB-Master, DocDB, Raft
### Phase 2 — APIs
- [YSQL vs YCQL](docs/03-ysql-vs-ycql.md) — the two query layers and when to choose each
- Exercises: [YSQL basics](exercises/ysql/) and [YCQL basics](exercises/ycql/)
### Phase 3 — Internals
- [Sharding and replication](docs/04-sharding-replication.md) — tablets, leader/follower, Raft groups
- [Distributed transactions](docs/05-transactions.md) — hybrid logical clocks, isolation levels
### Phase 4 — Operations
- [Performance & tuning](docs/06-performance.md) — tablet splitting, colocation, indexes
- [Setup guide](setup/README.md) — Docker, native install, multi-node clusters
### Phase 5 — Application
- [Sample app](sample-app/) — a Node.js + Fastify service that uses YSQL for an order-management workflow
## Quick start
```bash
# 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 yugabyte
```
Then jump into [exercises/ysql/01_basics.sql](exercises/ysql/01_basics.sql).
## Reference
- [Cheatsheet](notes/cheatsheet.md) — common commands and SQL patterns
- [Resources](notes/resources.md) — official docs, talks, deep-dive blog posts