Systems Architecture & Distributed Systems Topics
Large-scale distributed system design, service architecture, microservices patterns, global distribution strategies, scalability, and fault tolerance at the service/application layer. Covers microservices decomposition, caching strategies, API design, eventual consistency, multi-region systems, and architectural resilience patterns. Excludes storage and database optimization (see Database Engineering & Data Systems), data pipeline infrastructure (see Data Engineering & Analytics Infrastructure), and infrastructure platform design (see Cloud & Infrastructure).
Real-Time and Streaming System Design
Designing low-latency, always-on systems: real-time communication (WebSockets, long-polling, server-sent events), presence and pub/sub fan-out, live streaming and video delivery, and real-time collaboration. Covers latency budgets, connection scaling, and delivering ordered updates to many concurrent clients. The design surface for chat, feeds, streaming, and collaborative apps.
Stateful Service Design and State Management
Handling state in otherwise-distributed systems: stateful versus stateless service design, session management, sticky routing, in-memory state with durable backing, and state replication. Covers where state should live, how to recover it after a crash, and the scaling constraints stateful services impose. Complements the stateless-first default with when and how to hold state.
Caching Strategies and Distributed Caching
Using caches to reduce latency and load: cache-aside, read-through, write-through, and write-behind patterns, TTLs, eviction policies, and distributed caches such as Redis or Memcached. Covers cache invalidation, stampede and thundering-herd protection, and the consistency tradeoffs of caching. Focuses on where and how to cache across tiers.
Multi-Tenancy and Isolation
Serving many tenants from shared infrastructure: tenancy models (silo, pool, bridge), data isolation, noisy-neighbor mitigation, per-tenant limits, and security boundaries between tenants. Covers the cost, isolation, and blast-radius tradeoffs of shared versus dedicated resources. The architecture layer specific to SaaS and platform products.
Architectural Patterns and Anti-Patterns
The reusable structures and common traps of system design: layered, hexagonal, CQRS, and event-sourcing patterns, and anti-patterns such as the distributed monolith, chatty services, and god-service sprawl. Covers when each pattern applies and the smell that signals a wrong turn. A catalog-level view distinct from bespoke case studies.
Observability and Monitoring for Distributed Systems
Understanding system behavior in production: metrics, logs, and distributed tracing, SLIs/SLOs/SLAs, alerting, dashboards, and service mesh observability. Covers correlating signals across services, defining meaningful telemetry, and reducing mean-time-to-detect. The visibility layer that makes distributed systems operable at scale.
API and Interface Design for Distributed Services
Designing the contracts between services and clients: REST, gRPC, and GraphQL tradeoffs, versioning and backward compatibility, pagination, rate limiting, and idempotent endpoints. Covers request/response modeling, error contracts, and API gateway responsibilities. Focuses on the interface layer that ties distributed components together, not internal data schemas.
Consensus and Coordination Algorithms
How independent nodes agree on shared state: Paxos and Raft, leader election, quorum reads and writes, distributed locks, and coordination services such as ZooKeeper or etcd. Covers split-brain avoidance, fencing tokens, and the cost of coordination on throughput and latency. Frames when consensus is required versus when it can be designed away.
Fault Tolerance, High Availability, and Disaster Recovery
Keeping a system serving despite failure, from code-level resilience to infrastructure-level recovery: circuit breakers, retries with backoff and jitter, timeouts, bulkheads, graceful degradation, and preventing cascading failures, alongside redundancy, failover (active-active versus active-passive), RPO and RTO objectives, backup and restore, and multi-region failover. Covers dependency-failure isolation, chaos engineering to validate resilience, failure-mode analysis, designing to nines of availability, cost-versus-availability tradeoffs, and recovery runbooks. Spans both the patterns that isolate partial failure and the disaster-recovery planning that restores a business-critical system after a major outage.