System Design is all about building reliable, scalable and maintainable systems.
- Books
- Youtube Playlists
- Github Repos
- Courses
- Web Application and Software Architecture 101 (accessible using Github student dev pack)
- Web Architecture - (module 3)
- client-server
- types of clients
- REST API
- HTTP PUSH, PULL
- HTTP PULL - Polling with ajax - (module 3)
- Persistent Connection Approaches(HTTP PUSH)
- HTTP Polling
- HTTP Long polling
- web socket
- server send events
- Streaming over HTTP
- Scalability
- what is scalability
- horizontal vs vertical
- scaling for global audience
- vertical and horizontal scaling
- isolation of services
- CDN
- Edge cache
- Geo-DNS
- Scalability- module 4
- application latency vs n/w latency
- Primary bottlenecks for scalability - databases, application architecture, caching, load balancers etc
- Performance vs scalability
- Throughput vs Latency
- Understanding Latency vs Througput
- Measuring Latency: average, p90, p99 etc
- Availability vs Consistency
- Eventual consistency vs strong consistency
- ACID vs BASE in Databases
- Further read on CAP theorem -
- High Availability- module 5
- fault tolerance, redundancy, replication, HA clustering