Round-robin
Even distribution across attached providers.
Attach any number of providers to a named Grid, choose how sendrules picks between them, and see which mailbox providers the Grid can actually reach before you commit.
Password resets aren’t landing. Onboarding emails are queueing. Support is fielding the second wave. You have a backup ESP account you opened a year ago in exactly this scenario — but the switch is a code change, an environment variable, a deploy, and a prayer that the new provider’s IPs are warm enough for the traffic you’re about to hand them.
sendrules holds the failover already. Attach the providers, pick a strategy, and when one goes soft the next takes over on the same rule with no bounce, no drop, and no change to your application.
Even distribution across attached providers.
Percentage split for cost or reputation tuning.
Primary until degraded, then next in line.
Non-deterministic distribution across the fleet.
Each recipient keeps the same sending identity across sends.
The recipient’s real mailbox provider decides the lane.
The rule editor tells you which mailbox providers your attached fleet actually covers. Ship a Grid that has no path to Yahoo, and you’ll see the gap in the editor — not in a support ticket the following Monday.
Provider health is tracked per adapter, in real time. Temporary errors — rate limits, connection timeouts, transient authentication failures — mark the provider as degraded for a short window and move the send to the next eligible provider under the Grid’s strategy. Nothing about the failover reaches your application: the client sees a successful accept and the route log records which provider ended up handling the message and why.
When the degraded provider recovers, sendrules brings it back into rotation gradually and continues to prefer whichever provider is currently the healthiest under your strategy. Priority Grids restore the primary once it has served clean traffic for a configurable observation window; weighted Grids reweight automatically until the split you specified is back in balance.
When every eligible provider is unhealthy at once, the send holds in the queue rather than dropping. Deferred messages retain their route history so replays land on a provider that’s recovered — you never wake up to a silent drop.