6 modules · 17 lessons
Backend Engineering
From request execution and trusted contracts to data correctness, distributed processing, and production recovery. Follow the mechanisms, failure schedules, and implementation tradeoffs behind reliable backends.
Requests and execution
- 01
Requests, protocols, and the server boundary
Trace HTTP and gRPC from the connection to the handler, including proxy trust, deadlines, and protocol guarantees.
- 02
Concurrency, scheduling, and backpressure
Connect event loops, workers, cancellation, queues, and global pool budgets to useful work under overload.
Contracts and trust
- 01
API contracts, representation, and pagination
Design commands, errors, compatible representations, and stable list traversal with explicit consistency semantics.
- 02
Identity, authorization, and tenant isolation
Carry verified identity and resource permissions through queries, caches, jobs, and shared infrastructure.
Data and correctness
- 01
Domain rules, data models, and ownership
Model invariants, historical facts, constraints, state transitions, and the owner of each durable decision.
- 02
Storage engines, indexes, and query plans
Read storage and query costs through WAL, MVCC maintenance, access paths, plans, and representative cardinalities.
- 03
Transactions, MVCC, and concurrency control
Work through last-unit races, snapshot isolation, write skew, locks, version checks, and ambiguous commits.
- 04
Caches, freshness, and invalidation
Make cache identity, stale-fill races, stampedes, eviction, and cache-outage capacity part of one contract.
Distributed processing
- 01
Deadlines, retries, and idempotent operations
Bound failure amplification and resolve uncertain mutations using budgets, receipts, stable operation IDs, and reconciliation.
- 02
Queues, streams, and transactional messaging
Understand durable acceptance, outbox and inbox transactions, ordering, redelivery, replay, and backlog drain.
- 03
Replication, partitioning, and identifiers
Reason about replica lag, failover, shard ownership, routing epochs, global operations, and identifier guarantees.
- 04
Coordination, leases, and durable workflows
See why expired owners need fencing and how persistent workflow state handles cross-system uncertainty and compensation.
Read models and long-lived work
- 01
Search indexes and derived data
Build a search read model with permission-aware retrieval, versioned updates, deletion rules, rebuild boundaries, and reconciliation.
- 02
Realtime delivery, batch jobs, and resumable work
Choose polling, SSE, or WebSockets and make reconnects, snapshot gaps, slow consumers, and export checkpoints explicit.
Architecture and operations
- 01
Service boundaries and safe evolution
Use ownership to choose modules or services, then evolve schema, events, caches, and deployments without breaking overlap.
- 02
Testing, observability, and capacity reasoning
Connect invariants to race tests, useful telemetry, critical-path diagnosis, realistic load, and operating budgets.
- 03
Worked production reviews
Review a recoverable checkout and an isolated large-tenant export using concrete budgets, crash schedules, and recovery evidence.