System Design
Synthesis of every prior wave. A framework for approaching .NET system-design problems plus six worked cases at progressively wider scope. Each case names the trade-offs explicitly and references the lower-level topics that the proposed design relies on.
Topics (canonical order)
-
Framework for .NET System Design
Requirements → constraints → capacity → API → data → distribution → resilience → observability — applied with .NET-specific defaults
-
Case: High-Throughput Public API
Minimal APIs + output cache + rate limit + Polly + OTel; capacity math; HTTP/2 vs HTTP/3 trade-off
-
Case: Event-Driven Order Pipeline
Outbox + sagas + Service Bus / Kafka; idempotency; compensation; observability
-
Tenant isolation patterns, schema-per-tenant vs row-per-tenant, key vault per tenant, EF Core query filters
-
Case: Real-Time Collaboration App
SignalR hubs + Redis backplane; presence; consistency vs latency; reconnection
-
Case: Batch Processing Pipeline
Channel<T>-based pipeline, workers, backpressure, checkpointing, parallelism degree -
End-to-end RAG: ingestion → chunking → embedding → vector store → retrieval → rerank → IChatClient
Why this order
Framework first because every case applies it. Cases are ordered roughly by canonical familiarity: HTTP API → event-driven → multi-tenant → real-time → batch → AI. The RAG case explicitly synthesizes AI / LLM Integration.
Cross-references
Each case heavily cross-references earlier waves — see the individual case files. The RAG case is the natural bridge into AI / LLM Integration.