01 — Outbound Infrastructure

Why Volume Should Not Be Your Scaling Strategy

As outbound infrastructure scales, the instinct is usually straightforward: send more. If 20,000 emails work, send 50,000. If one domain isn't enough, add another. If one IP isn't enough, add more.

That looks like scaling. But it isn't necessarily sustainable scaling.

Email infrastructure has a distinction that's easy to miss:

Volume is not capacity.

You can increase the number of messages you send without increasing the amount of traffic the system can sustainably deliver.

Fact: Google's sender guidance recommends sending at a consistent rate, avoiding bursts, starting with low volume to engaged recipients, and gradually increasing volume — and warns that sudden increases can result in rate limiting or reputation problems. AWS similarly describes consistent, predictable sending patterns as important for dedicated IP reputation, and warns against suddenly sending large volumes without an established history.

Architectural principle: volume should be treated as an output of a healthy outbound system — not the primary mechanism by which the system scales.

1. Volume Is Not Capacity

Two systems can send the same average volume and be operationally very different. System A sends 10k / 10k / 10k / 10k / 10k. System B sends 2k / 50k / 0 / 100k / 3k. Same average — not equivalent at all. The receiving ecosystem doesn't experience your monthly average; it experiences the traffic arriving at a particular time, from particular identities and infrastructure, with a particular history.

The more useful question isn't "how many emails can we send?" It's "how much traffic can we sustain predictably?" That shifts the model from more volume → add infrastructure → send more to a loop: current traffic → measure → evaluate route health → increase / hold / reduce → observe → repeat. The second model treats capacity as something the system continuously validates, not something it assumes.

2. Volume and Rate Are Different Variables

100,000 messages/day could mean ~4,167/hour sent consistently, or 0 for 23 hours followed by 100,000 in one hour. Same daily volume, very different traffic pattern.

Fact: Google explicitly recommends sending at a consistent rate and avoiding bursts, and warns that sudden increases in sending volume can lead to rate limiting or reputation drops.

Daily volume tells you how much traffic exists. Sending rate tells you how the system — and the receiving provider — experiences that traffic. For infrastructure design, both matter, and rate is the one teams tend to ignore.

3. A Spike Is an Infrastructure Event

A campaign that looks harmless from the business side — normal 20k/day, campaign day 200k/day — is a 10× increase from the sending system's perspective.

Fact: Google's guidance specifically recommends avoiding sudden volume spikes and increasing volume gradually instead, warning that "immediately doubling previously sent volumes suddenly could result in rate limiting or reputation drops." AWS makes a parallel point for dedicated IPs: a sudden increase in volume after warm-up can cause receiving providers to throttle or block traffic.

That means campaign planning and infrastructure planning can't be fully separated. A large campaign isn't just a marketing event — it's also a traffic event, and traffic events need capacity planning ahead of time, not after the send button is pressed.

4. Reputation Has Memory

An outbound route isn't evaluated only on what it's doing right now — its history matters.

Fact: AWS explains that dedicated IP reputation is influenced by sending history, and that an IP with consistent sending patterns generally has an advantage over one that suddenly begins sending large volumes without an established history.

So historical behavior plus current behavior together form a sending profile. A jump from 10k/day to 100k/day hasn't just increased volume — it's changed the behavioral profile the infrastructure presents to receiving systems. The problem isn't that high volume is inherently bad. The problem is that unpredictable volume changes the conditions under which the sending infrastructure gets evaluated.

5. Warm-Up Proves That Capacity Is Gradual

Nothing demonstrates the gap between infrastructure capacity and sustainable capacity better than IP warm-up. You can technically provision a new IP immediately — that doesn't mean the receiving ecosystem will treat it as if it had years of sending history.

Fact: AWS documents gradual warm-up for dedicated IPs — new IPs start with lower traffic, progressively increased — and warns that sending large volumes immediately after warm-up can cause throttling or blocking.

The broader principle: technical availability is not the same as deliverable capacity. You can provision infrastructure before you've earned the sending pattern that makes it trustworthy.

6. More IPs Don't Automatically Create More Capacity — and a Failure Can Spread Sideways

Imagine a team decides "we need twice the volume" and doubles IPs from 2 to 4 on the same domain. Technically there's more infrastructure. But the system still has to answer whether the new IPs are warmed, whether they're receiving a predictable pattern, whether destinations are accepting the increase, and whether the team can observe and respond to the additional routes.

There's a sharper reason this matters, and it's easy to miss: Google tracks quotas differently at the domain level versus the IP level. Google's own guidance states that DKIM and SPF quotas are specific to your domain, but the IP address quota is shared across every sender using that IP — and when the IP hits its quota, all domains sending from that IP stop sending, not just the one that caused the problem.

That means adding IPs without addressing the underlying pattern doesn't just fail to add capacity — it can create a shared failure surface. A single domain with erratic sending behavior can throttle every other domain sharing its IP, even domains that were behaving perfectly. Fact: AWS's managed dedicated IP architecture illustrates a more sophisticated alternative — SES manages dedicated IP capacity around sending patterns and ISP-specific behavior, rather than treating raw IP count as the unit of scalability.

Adding infrastructure increases available infrastructure. It doesn't automatically increase sustainable sending capacity by the same amount — and in the wrong configuration, it can expose good traffic to bad traffic's problems.

7. Infrastructure Capacity vs. Deliverable Capacity

A useful model: infrastructure capacity → warm-up capacity → provider acceptance → reputation capacity → recipient engagement → operational capacity → sustainable capacity. Every layer constrains the next. You might technically own 10 domains, 20 IPs, and 2 providers, but that doesn't mean the system can immediately sustain an arbitrary volume through all of them — the actual bottleneck might be destination throttling, a still-warming IP, domain reputation, recipient engagement, or simply a lack of observability. Counting infrastructure objects is a poor proxy for outbound capacity.

8. Volume Amplifies Failure

Scaling traffic scales the blast radius of mistakes. A 1% error rate at 10,000 messages is 100 affected messages; at 1,000,000 messages, it's 10,000. The percentage hasn't changed — the absolute impact has.

The same logic applies to spam complaints, and here the numbers matter enough to get exactly right. Fact: Google requires bulk senders (5,000+ messages/day) to keep spam rates reported in Postmaster Tools below 0.3% — this is the hard requirement, tied directly to delivery enforcement. Separately, in its monitoring guidance, Google recommends staying below 0.1% and never approaching 0.3% at all, on the reasoning that "maintaining a low spam rate helps senders be more resilient to occasional spikes in user feedback." The 0.1% figure is a recommended margin, not the requirement itself — the requirement is 0.3%.

At 100,000 messages, a 0.1% rate corresponds to 100 reports; at 500,000 messages, the same rate corresponds to 500. Those aren't complaint quotas — they're illustrations of the same underlying point: percentage-based problems produce larger absolute consequences as volume increases. That's why scaling before control is established is dangerous, and why the margin Google recommends (0.1%) exists specifically to absorb the spikes that come with growth before they threaten the actual requirement (0.3%).

9. Engagement Becomes More Important as Volume Grows

Infrastructure is only one side of the system — the other is the recipient. Fact: Google recommends sending only to recipients who want it, using opt-in practices, confirming addresses, periodically reassessing engagement, and considering unsubscribing recipients who don't open or read messages.

Volume increases the number of recipient interactions — more opportunities for positive engagement, but also for ignored messages, spam complaints, invalid addresses, and unsubscribes. Sustainable volume isn't just a function of how much infrastructure you own; it's a function of how much relevant traffic you can send to recipients who actually want it. Volume quality matters as much as volume quantity.

10. Volume Should Be Earned Through Feedback

The most scalable systems don't assume a volume increase is safe — they test it. Fact: Google recommends monitoring delivery, spam rate, and domain reputation while increasing volume, and — when bounces or deferrals increase — reducing sending volume until the SMTP error rate decreases before increasing gradually again.

That's a simple control loop: increase → observe → healthy? → yes: increase further / no: reduce and recover. Volume growth should be conditional on system feedback. Not "the campaign needs 500k, so the infrastructure must send 500k" — that's a demand statement, not a control system.

11. Segment Before You Scale

This is one of the more overlooked parts of Google's guidance, and one of the most useful. Fact: Google recommends that "after making any significant changes to your sending infrastructure or email header structure, increase the modified segment of traffic separately" rather than changing everything at once.

So instead of 100% → new infrastructure immediately, the safer pattern is: existing traffic stays a stable baseline, new traffic starts as a small segment, gets observed, and only then increases. This gives the system something valuable — comparability. If something changes, you can identify what caused it, because you didn't change five things simultaneously.

12. Scaling Everything at Once Destroys Observability

Imagine changing new domains, new IPs, a new provider, a new message format, and 10× volume all at the same time — then performance deteriorates. What caused it? You don't know, because the architecture changed in five dimensions at once. A system that adds one controlled change, observes, validates, and then expands has attribution built in.

This isn't a Google or AWS requirement — it's a systems-engineering principle: if you scale multiple variables simultaneously, you reduce your ability to identify causality when the system changes state.

13. Queueing Is a Scaling Primitive

One of the oldest ideas in reliable messaging is also one of the most useful here: queue the work that can't be safely delivered immediately. RFC 5321 defines SMTP behavior around queuing and retrying messages when immediate delivery isn't possible, including delaying retries after temporary failures.

Instead of demand spike → push harder → throttle, the system can do demand spike → queue → controlled sending rate → delivery. You don't always need to eliminate the spike — you need to prevent it from becoming uncontrolled sending pressure. The queue separates demand from delivery: business systems can request 100,000 messages without forcing the infrastructure to transmit all 100,000 immediately. That's an architectural inference from the queue/retry model, not a direct RFC quote, but it follows naturally from it.

14. Rate Control Matters More Than Raw Throughput

A route can be healthy and still receive too much traffic. A provider can be available and still throttle a sender. An IP can be technically operational and still be mid-warm-up. So available infrastructure doesn't imply unlimited sending rate — the router decides where a message can go; a separate rate controller decides how fast traffic should enter that route. Conflating the two is a common source of self-inflicted throttling.

15. The Right Scaling Unit Is Sustainable Throughput

The wrong metric is messages/day treated as the only measure of scalability. A better one is sustainable throughput — the amount of traffic the system can continue delivering while maintaining acceptable route health, predictable behavior, observability, and operational control. This isn't a provider-defined metric; it's an architectural abstraction, but a useful one. A system sending 80k/day with stable routes, controlled rate, and clear health signals may be more scalable than one sending 100k/day with unstable routes, high deferrals, and poor observability — because the first has room to grow and the second may already be past its sustainable range.

16. More Infrastructure Can Mean More Complexity

Every additional infrastructure object creates additional state to manage: a new domain brings DNS, SPF, DKIM, DMARC, monitoring, and reputation history; a new IP brings warm-up, reputation, rate, and destination-specific behavior; a new provider brings configuration, routing, quotas, and failure handling. More infrastructure means more state, more policy, and more to observe. If the control plane doesn't grow with the infrastructure, complexity becomes the bottleneck — infrastructure count is not the same thing as system maturity.

Fact: AWS's managed dedicated IP model makes this principle explicit — it describes dedicated IP capacity as dynamically scaling based on sending requirements, with ISP-specific warm-up and traffic management. The lesson isn't "use AWS" — it's that a mature sending system treats capacity as dynamic and state-dependent, not as a simple function of IP count.

17. Quotas Are Not Deliverability Capacity

Providers expose sending quotas and limits, but a technical quota shouldn't automatically be read as a recommended operating rate. There are effectively three different numbers: technical maximum, provider operating constraint, and sustainable deliverability capacity — and they aren't necessarily the same. A system can be technically permitted to send a certain volume while still needing to operate below that level to maintain a predictable pattern. "The provider lets us send it" is not the same as "we should send it at that rate."

18. Scaling Should Be Progressive

A healthy sequence: baseline → small increase → observe → validate → increase → observe → increase again. Not: baseline → 10× volume → hope. This is the shared principle behind both Google's guidance and AWS's warm-up behavior — increase gradually, observe the system, respond to negative signals rather than assuming linear scalability.

19. Scaling Can Mean Improving Efficiency, Not Just Speed

If a system currently has 100k requested, 80k successfully processed, and 20k delayed or failed, improving routing, queue management, retry behavior, provider selection, observability, or error handling can increase effective throughput without increasing raw sending volume. Same demand plus better system efficiency equals more effective output. That's still scaling — arguably a healthier form of it than simply sending faster.

20. Common Anti-Patterns

  • Blind volume scaling — "need 2× output, so send 2× faster," ignoring provider response, warm-up, reputation, and route state.

  • Campaign spike as capacity strategy — treating a sudden demand increase (20k → 200k/day) as if the infrastructure were stateless.

  • Add IPs to absorb every spike — using infrastructure as a substitute for traffic control.

  • Treat provider quota as recommended throughput — a quota is a technical boundary, not a sustainable operating target.

  • Scale every variable simultaneously — new domains, new IPs, new provider, new content, 10× volume all at once, with no way to attribute what caused a problem afterward.

  • Ignore the queue — pushing every demand spike straight into immediate delivery instead of controlled latency.

  • Optimize for utilization instead of stability — "every IP must be busy" is not, by itself, a good outbound objective. A healthier goal is every route operating within a predictable range.

21. Scale the System, Not the Number

Weak scaling looks like: more messages → more domains → more IPs → more providers. Strong scaling looks like: better classification + better routing + better rate control + better queueing + better observability + better recovery. The first increases infrastructure count. The second increases system capability. That's the difference between adding resources and building capacity.

22. What Sustainable Scaling Actually Looks Like

A sustainable progression: stable baseline → measure route health → increase a controlled segment → observe destination behavior → validate reputation/delivery signals → increase again → adjust rate → repeat. When signals deteriorate: increase → negative signal → hold or reduce → investigate → recover → resume gradual growth. That's fundamentally different from volume target → infrastructure expansion → force the target through regardless of what the system is telling you.

A useful (non-literal) mental model: sustainable throughput is the product of infrastructure, route health, rate control, recipient acceptance, and observability — all multiplied together. If any one of them deteriorates, adding infrastructure doesn't solve the bottleneck, because the constraint lives somewhere else.

Conclusion

Volume is easy to measure — that's part of the problem. Teams can point at 50k/day, then 100k/day, then 500k/day and feel like the system is scaling, but those numbers don't tell you whether the underlying infrastructure is becoming more resilient.

Google's sender guidance recommends consistent sending rates, avoiding bursts, gradually increasing volume, segmenting significant changes, and reducing volume when delivery errors or deferrals increase. AWS emphasizes predictable sending patterns, gradual IP warm-up, and destination-aware management of dedicated IP capacity. Neither treats volume as the lever — both treat it as something that has to be earned from a system already behaving well.

The lesson isn't that high volume is bad — high-volume sending is a legitimate infrastructure requirement. The lesson is that volume cannot be the control mechanism by which you achieve scale. A scalable system doesn't ask "how do we send more?" It asks "what is currently limiting sustainable throughput, and how do we remove that constraint without losing control?" Sometimes the answer is more infrastructure. Sometimes it's better routing, rate control, queueing, recipient targeting, or simply better observability. The important distinction is that the system decides — not the volume target.

Volume is an output of capacity. It is not capacity itself. The strongest outbound systems don't scale by pushing harder — they scale by getting better at controlling what they send, where they send it, how quickly they send it, and how they respond when the system says to slow down.


Primary sources

Engineering Reviews & Logs
0 ENTRIES