↓ Ir para o conteúdo principal

← todas as notas

📎 Webclip

8 Must-Know Strategies to Build Scalable Systems

The page groups eight techniques for building systems that can handle more load without losing performance or user experience. It frames scaling as useful even when a system does not need the size of Amazon, Uber, or Netflix.

Reading notes
#

  • Stateless services keep no client session information between requests, so each request carries what the server needs.
  • Stateless architecture makes servers interchangeable and easier to scale, and it also helps when one server fails.
  • JWTs can store session data on the client side, and stateful operations can move state to a database or Redis.
  • Horizontal scaling adds more servers to share load, instead of upgrading hardware.
  • Horizontal scaling improves redundancy and lets workloads grow by adding servers.
  • Kubernetes can help manage containerized applications across multiple nodes.
  • Load balancing spreads incoming requests across multiple servers so no single server is overwhelmed.
  • Load balancers can redirect traffic to healthy servers, and health checks help them avoid failing servers.
  • Sticky sessions should be used carefully because they can make the system more stateful.
  • Auto-scaling changes server or resource count based on real-time traffic.
  • Auto-scaling helps avoid over-provisioning during quiet periods and under-provisioning during traffic spikes.
  • Cloud providers like AWS, Azure, and Google Cloud offer built-in auto-scaling tools.
  • Caching stores frequently accessed data closer to the user or in memory to reduce database load.
  • The page names database caching, application caching, and CDNs as caching layers.
  • Cache expiration times should be set so cached data stays current.
  • Database replication creates multiple copies of a database so replicas can handle reads and provide backup nodes.
  • The page recommends separating read and write queries, with reads going to replicas and writes to the primary node.
  • Asynchronous processing moves heavy tasks to background workers so the system can respond without waiting for them.
  • Message queues such as RabbitMQ, Kafka, and AWS SQS can manage task queues.
  • Retry handling and idempotency matter for background tasks so retries do not create duplicates.