{"adoption": {"forks": 307, "observed_at": "2026-08-28T04:06:19.241146+00:00", "stars": 2149}, "canonical_url": "https://ross.abutalabs.com/products/builddatabase", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Build a distributed SQL database from the ground up", "domain": ["databases", "microservices", "tutorials", "education"], "enriched": true, "function": ["database", "parser", "documentation"], "health_score": 20, "homepage": null, "language": null, "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["ngaut/builddatabase"], "name": "ngaut/builddatabase", "platform": ["cross-platform"], "pushed_at": "2022-09-11T10:54:09+00:00", "repo": "ngaut/builddatabase", "stars": 2149, "tags": ["distributed-sql", "tidb", "tikv", "book", "open-source-course", "chinese-language"], "topics": [], "urls": [], "use_cases": ["learn how distributed SQL databases work internally", "understand TiDB and TiKV source code", "study SQL parser implementation with goyacc and golex", "learn distributed transaction models like Percolator and Spanner", "understand Raft consensus and distributed key-value engines", "learn how to test distributed systems with Jepsen and fault injection"], "what_it_is": "An open-source book/course that teaches how to build a distributed SQL database from scratch, using TiDB and TiKV source code as reference examples. It covers SQL parsing, the MySQL wire protocol, query optimization, distributed transactions, Raft, schema changes, and distributed system testing.", "when_to_avoid": ["you need a production-ready database rather than educational material", "you want a maintained tutorial with recent updates and active community", "you cannot read Chinese, since the content is written in Chinese"], "when_to_choose": ["you want a deep, source-code-driven guide to distributed database internals", "you are studying TiDB/TiKV or planning to contribute to them", "you want to learn SQL parsing, optimization, and Raft in one curriculum"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/builddatabase", "repo": "ngaut/builddatabase", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.241146+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:50:59.760084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7458d2a847a9aa2f7237c12841f983e44ce3f9ba4bcbb80419c58d5adbea45e6", "fetched_at": "2026-08-28T04:06:19.241146+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ngaut/builddatabase"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.241146+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:50:59.760084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7458d2a847a9aa2f7237c12841f983e44ce3f9ba4bcbb80419c58d5adbea45e6", "fetched_at": "2026-08-28T04:06:19.241146+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ngaut/builddatabase"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:50:59.760084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7458d2a847a9aa2f7237c12841f983e44ce3f9ba4bcbb80419c58d5adbea45e6", "fetched_at": "2026-08-28T04:06:19.241146+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ngaut/builddatabase"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.241146+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.241146+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.241146+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:50:59.760084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7458d2a847a9aa2f7237c12841f983e44ce3f9ba4bcbb80419c58d5adbea45e6", "fetched_at": "2026-08-28T04:06:19.241146+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ngaut/builddatabase"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.241146+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.241146+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:50:59.760084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7458d2a847a9aa2f7237c12841f983e44ce3f9ba4bcbb80419c58d5adbea45e6", "fetched_at": "2026-08-28T04:06:19.241146+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ngaut/builddatabase"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.241146+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.241146+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.241146+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:50:59.760084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7458d2a847a9aa2f7237c12841f983e44ce3f9ba4bcbb80419c58d5adbea45e6", "fetched_at": "2026-08-28T04:06:19.241146+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ngaut/builddatabase"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.241146+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.241146+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:50:59.760084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7458d2a847a9aa2f7237c12841f983e44ce3f9ba4bcbb80419c58d5adbea45e6", "fetched_at": "2026-08-28T04:06:19.241146+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ngaut/builddatabase"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:50:59.760084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7458d2a847a9aa2f7237c12841f983e44ce3f9ba4bcbb80419c58d5adbea45e6", "fetched_at": "2026-08-28T04:06:19.241146+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ngaut/builddatabase"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:50:59.760084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7458d2a847a9aa2f7237c12841f983e44ce3f9ba4bcbb80419c58d5adbea45e6", "fetched_at": "2026-08-28T04:06:19.241146+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ngaut/builddatabase"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:50:59.760084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7458d2a847a9aa2f7237c12841f983e44ce3f9ba4bcbb80419c58d5adbea45e6", "fetched_at": "2026-08-28T04:06:19.241146+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ngaut/builddatabase"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4049, "days_push": 1452, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}