Techniques for growing system capacity -- scaling, sharding, and pooling.
Understand the two fundamental approaches to scaling systems: adding more machines (horizontal) versus upgrading existing machines (vertical). Learn when to use each strategy and the trade-offs involved.
Learn how auto-scaling dynamically adjusts compute resources based on real-time demand, reducing costs during quiet periods and maintaining performance during traffic spikes.
Learn how designing services without local state enables effortless horizontal scaling, simplifies deployments, and improves fault tolerance in distributed systems.
Explore how database sharding partitions data across multiple database instances to distribute load, increase storage capacity, and improve write throughput for large-scale applications.
Understand how connection pooling reuses database connections across requests to reduce overhead, improve latency, and prevent connection exhaustion in high-traffic applications.
Discover how read replicas scale database read throughput by distributing queries across multiple copies of the data, enabling read-heavy applications to serve millions of users.