Distributed Concepts is a short, interactive course about distributed systems. The learner builds one global service on a live 3D globe. Each screen explains one system change and gives the learner one clear next action.
The course has four experiments:
- Build two copies — Place a leader and one distant read replica.
- Follow one write — See the leader reply before replication ends.
- Race the copy — Read now or wait, then observe eventual consistency.
- Break the leader — Detect failure, elect a standby, and resume writes.
The globe stays mounted during the full course. Browser Back, browser Forward,
Escape, and the course button change the view without a page reload. Each
lesson also has a direct URL, such as /lessons/stale-read.
- Next.js 16, React 19, and TypeScript
- React Three Fiber, Drei, and custom GLSL shaders
- Tailwind CSS v4
- Zustand v5
- Framer Motion and R3F
useFrame
The simulation runs in the browser. It does not use a database or application API.
npm install
npm test
npm run devOpen http://localhost:3000.
Use these commands before a production change:
npm test
npm run lint
npm run buildsrc/app/page.tsxcomposes the home, globe, and four lesson views.src/components/panels/CoursePanel.tsxprovides the common lesson shell.src/components/panels/*LessonPanel.tsxprovides the guided lesson actions.src/components/globe/*Visualization.tsxshows each system action.src/lib/steps.tsdefines the course order and copy.src/lib/curriculum-runtime.tsdefines routes and completion rules.src/lib/simulationcontains the pure simulation state machines.src/lib/storeadapts the simulations to React and saves course progress.