// the find
geektutu/7days-golang
7 days golang programs from scratch (web framework Gee, distributed cache GeeCache, object relational mapping ORM framework GeeORM, rpc framework GeeRPC etc) 7天用Go动手写/从零实现系列
A collection of four '7-day' Go projects where you build infrastructure from scratch: a gin-style web framework, a groupcache-style distributed cache, a gorm-style ORM, and an RPC framework. Aimed squarely at Go developers who want to understand how these systems work internally, not just use them. Each project is structured as daily increments with companion blog posts.
Each day builds on the previous one with real, runnable code — you can read the diff between day 3 and day 4 to understand exactly what consistent hashing adds and why. GeeCache goes further than a naive tutorial: it implements single-flight to prevent cache stampedes and swaps HTTP for Protobuf in day 7, which is the kind of progression that actually teaches something. GeeRPC in ~1k lines covers protocol negotiation, timeout handling, load balancing, and a registry — the concision makes it readable without losing the important parts. Test files are included throughout every daily increment, not bolted on at the end.
GeeORM only supports SQLite, so you can read the reflection-based schema mapping but can't see how dialect differences complicate a real ORM — the interesting production problems are mostly off-screen. The gee-bolt directory (a BoltDB clone) is visibly incomplete and abandoned mid-series, which is a dead end if you follow the README expecting four finished tracks. Last meaningful update was mid-2024 and there are no open PRs being merged, so Go version assumptions and dependency versions are drifting. The projects are deliberate toy implementations with no error recovery, connection pooling, or observability — fine for learning, but someone needs to go in knowing the gap between this and production code is large.