Systems & Networking
Load Balancing & Scaling
Traffic distribution across multiple servers for high availability and horizontal scaling capabilities.
- Round-robin distribution
- Least connections algorithm
- IP hash for session affinity
- Health checks with failover
- Web server farms
- API gateway distribution
- Database read replica balancing
- Microservices routing
Intermediary server providing SSL termination, caching, compression, and request routing capabilities.
- Request routing and forwarding
- SSL/TLS termination
- Response caching
- Rate limiting and security
- Nginx as reverse proxy
- HAProxy for load balancing
- Traefik for container routing
- Envoy for service mesh
Distributed caching network with edge locations for reduced latency and improved content delivery.
- Geographic distribution
- Static asset caching
- DDoS protection
- Origin shield for protection
- CloudFront for AWS
- Cloudflare global CDN
- Fastly edge cloud
- Akamai content delivery
Concurrency Fundamentals
Concurrency primitives enabling parallel execution through context switching and scheduling mechanisms.
- Parallel execution capability
- Shared memory between threads
- Inter-process communication (IPC)
- Process isolation for security
- Multi-threaded web servers
- Background worker processes
- Parallel data processing
- Asynchronous task execution
Mechanisms for mutual exclusion preventing race conditions through various locking strategies.
- Mutexes for exclusive access
- Read-write locks for optimization
- Spinlocks for short waits
- Atomic operations for primitives
- Shared resource protection
- Counter updates
- Cache consistency
- Database connection pools
Concurrent access issues where timing affects correctness, requiring thread safety and critical section protection.
- Detection through testing
- Prevention with locks
- Race detection tools
- Debugging with sanitizers
- Counter increment race
- Check-then-act patterns
- Double-checked locking
- File access conflicts
Distributed Systems
Fundamental theorem describing trade-offs between Consistency, Availability, and Partition tolerance in distributed systems.
- CP systems prioritize consistency
- AP systems prioritize availability
- Eventual consistency models
- Strong consistency guarantees
- Database architecture choices
- Distributed cache design
- Microservice data patterns
- Consensus algorithm selection
Algorithms for achieving agreement in distributed systems, including Raft, Paxos, and leader election mechanisms.
- Fault tolerance guarantees
- Replicated state machines
- Ordering guarantees
- Split-brain prevention
- etcd for Kubernetes
- Consul for service discovery
- ZooKeeper coordination
- Distributed database replication
Models defining read/write guarantees ranging from eventual to strong consistency with various trade-offs.
- Ordering guarantees
- Latency trade-offs
- Conflict resolution strategies
- Causality preservation
- DynamoDB eventual consistency
- Cassandra tunable consistency
- Redis strong consistency
- MongoDB consistency levels
Network Protocols
Four-layer networking model providing reliable transport layer delivery with flow control and congestion management.
- Connection-oriented communication
- Error checking and correction
- Packet ordering guarantees
- Congestion control mechanisms
- Web browsing (HTTP over TCP)
- Email transmission (SMTP)
- File transfer (FTP)
- Streaming services
Application layer protocol for request/response communication, stateless by design with various methods for resource manipulation.
- Request/response headers
- Status codes (200, 404, 500, etc.)
- Cookies for state management
- HTTP/2 multiplexing and HTTP/3 QUIC
- RESTful Web APIs
- Web page serving
- Webhooks and callbacks
- GraphQL over HTTP
Domain Name System for hierarchical name resolution with caching and load balancing capabilities.
- A/AAAA records for IP addresses
- CNAME for aliasing
- MX records for email routing
- TTL-based caching strategy
- Website domain resolution
- Email server routing
- Service discovery mechanisms
- CDN routing and failover
Full-duplex communication protocol over persistent connections for real-time, low-latency bidirectional data exchange.
- Bidirectional messaging
- Event-driven architecture
- Lower overhead than polling
- Heartbeat for connection health
- Chat applications
- Live dashboards and updates
- Multiplayer games
- Collaborative editing tools
