diff --git a/apps/docs/blume.config.ts b/apps/docs/blume.config.ts
index 94a6646..e610e20 100644
--- a/apps/docs/blume.config.ts
+++ b/apps/docs/blume.config.ts
@@ -145,8 +145,8 @@ export default defineConfig({
// The two custom pages (pages/*.astro) as header tabs. Neither is a
// content folder, so the tabs scope nothing out of the sidebar tree.
tabs: [
- { label: "Changelog", path: "/changelog", icon: "clock" },
- { label: "Appendix", path: "/appendix", icon: "library" },
+ { label: "Changelog", path: "/changelog" },
+ { label: "Appendix", path: "/appendix" },
],
},
});
diff --git a/apps/docs/content/system-design/index.mdx b/apps/docs/content/system-design/index.mdx
index b358405..557ce3a 100644
--- a/apps/docs/content/system-design/index.mdx
+++ b/apps/docs/content/system-design/index.mdx
@@ -1,11 +1,15 @@
---
title: System Design
-description: Notes for system design interviews — how to scope a problem, size it, and pick the parts that carry the load.
+description: "Notes on System Design Interview — An Insider's Guide (Volumes 1 and 2): how to scope a problem, size it, and pick the parts that carry the load."
icon: network
-sidebar:
- label: Overview
---
+These notes follow Alex Xu's [System Design Interview — An Insider's Guide](https://bytebytego.com/courses/system-design-interview), [Volumes 1 and 2](https://www.goodreads.com/book/show/54109255-system-design-interview-an-insider-s-guide).
+
+:::note
+These notes are a work in progress.
+:::
+
## How an interview runs
@@ -25,3 +29,102 @@ sidebar:
Take the hardest part (a hot key, fan-out, a consistency guarantee) and work through its tradeoffs.
+
+## Foundations
+
+
+
+ From one server to millions of users.
+
+
+ Back-of-the-envelope QPS and storage.
+
+
+ The four steps of the interview.
+
+
+
+## Core designs
+
+
+
+ Token and leaking buckets, windows.
+
+
+ Hash rings and virtual nodes.
+
+
+ Quorums, vector clocks, gossip.
+
+
+ Snowflake and its alternatives.
+
+
+ Base 62 and redirects.
+
+
+ The URL frontier and politeness.
+
+
+ Push, SMS and email at scale.
+
+
+ Fanout on write and on read.
+
+
+ WebSockets and presence.
+
+
+ Tries and top-k prefixes.
+
+
+ Upload, transcode, stream.
+
+
+ Block storage and sync.
+
+
+
+## Advanced designs
+
+
+
+ Geohash, quadtrees, S2.
+
+
+ Live locations over pub/sub.
+
+
+ Tiles, routing and ETAs.
+
+
+ Partitions and consumer groups.
+
+
+ Time series and alerting.
+
+
+ Exactly-once stream counts.
+
+
+ Inventory without double booking.
+
+
+ Mail storage and search.
+
+
+ Erasure coding and metadata.
+
+
+ Redis sorted sets.
+
+
+ Ledgers and reconciliation.
+
+
+ Distributed transactions, event sourcing.
+
+
+ Order books and sequencers.
+
+