Data & Storage
Where state lives, how it stays correct, and why the query got slow.
14 concepts · 580 minutes
- SQL BasicsSELECT, WHERE, GROUP BY — declaring what you want and letting the planner find it.
- Validation & InjectionNever trust the client — schema validation at the boundary, parameterised queries below it.
- ORMs & Query BuildersConvenience with a leak — you still have to know the SQL it writes for you.
- Joins & RelationshipsInner, left, and the one that silently duplicates all your rows.
- Caching with RedisAn in-memory store used as cache, session bag, lock, counter, and queue.
- SQL vs NoSQLAccess patterns decide the store — not fashion, and not scale you don't have.
- IdempotencyMaking 'do it again' safe — the single idea that separates reliable distributed code from hope.
- Schema MigrationsChanging a schema under live traffic without taking the site down.
- Indexes & Query PlansWhy one query is 2ms and the identical-looking one is 8 seconds — read the plan.
- The N+1 ProblemOne query becomes 501 — the most common performance bug in application code.
- Data ModellingNormalise until it hurts, denormalise until it works — and know which one you're doing.
- Cache InvalidationTTLs, tags, stale-while-revalidate — the genuinely hard half of caching.
- Transactions & ACIDAll or nothing — plus the isolation levels that decide which anomalies you're allowing.
- Race ConditionsTwo things interleaving in an order you never tested — the bug class that only shows up in production.