01

Why this matters

System overload occurs when client requests exceed a service’s capacity to process them.

In push-based messaging, consumers may not be ready to process incoming messages, leading to performance degradation or failure.

In pull-based systems, brokers can be overwhelmed by excessive request volume.

Overload causes slow response times, request timeouts, and increased retry loops that worsen the problem.

Without protection, services degrade under load and may fail entirely.

02

What is system overload?

System overload happens when the number of incoming requests exceeds a service’s processing capacity.

It can occur in both push and pull-based architectures.

Clients may send requests aggressively or in large volume.

Examples include a few clients making many requests or millions of users making concurrent calls.

03

Consequences of overload

  • Request processing takes too long
  • Clients exceed timeout thresholds
  • Clients retry requests
  • Retries increase load, worsening overload
  • Service performance degrades
  • Service may fail completely

04

Protection mechanisms

  • Request batching: combine multiple client requests into one batch
  • Rate limiting: cap the number of requests per client or per time period
  • Load shedding: drop non-critical requests during overload
  • Client-side throttling: limit requests from individual clients
  • Circuit breaking: stop processing requests when service is overloaded
05

Real-world examples

  • A messaging broker sending messages faster than consumers can process them
  • A web service overwhelmed by millions of concurrent requests
  • A client repeatedly retrying after timeout, increasing load

Questions

  • How does request batching reduce overload in a pull-based system?
  • What is the difference between rate limiting and load shedding?
  • Why do retries worsen system overload?
  • Can a service protect itself from overload without client-side intervention?
  • How does circuit breaking differ from load shedding?
  • What happens when a consumer cannot process messages fast enough?
  • How does partitioning help prevent overload?
  • In a push system, what role does message delivery guarantee play?

Key takeaways

  • System overload occurs when client requests exceed processing capacity
  • It degrades performance and can cause service failure
  • Batching, rate limiting, and load shedding are key protection mechanisms
  • Retries worsen overload by increasing request volume
  • Circuit breaking and client-side throttling help manage load
  • Push and pull systems both face overload risks
  • Overload protection must be designed early in system architecture