IP pool management for high-volume sending
Why it matters
At volumes above 100,000 emails per day, a single sending IP becomes both a performance bottleneck and a single point of reputation failure. A block on one IP stops all sending until it is manually removed and replaced — a process that can take hours. IP pool management distributes sending load across multiple IPs and allows the system to automatically exclude a blocked or high-bounce IP and continue sending through healthy ones, without downtime or engineering intervention. Reputation-weighted or least-used selection also prevents one IP from absorbing a disproportionate share of sends while warm-up periods complete on others.
Severity rationale
Low because single-IP architectures are acceptable at lower volumes, but above 50,000 emails per day a single IP block creates a total sending outage that requires manual intervention to resolve.
Remediation
Store sending IPs in the database with per-IP health and warm-up metadata, then select from the pool based on health and current load:
export async function selectSendingIp(): Promise<string> {
const candidates = await db.sendingIp.findMany({
where: { active: true },
orderBy: { sentToday: 'asc' } // Prefer least-used
})
if (candidates.length === 0) {
throw new Error('No available sending IPs')
}
// Exclude IPs with bounce rates above 5% — they are reputation-damaged
const healthy = candidates.filter(ip => ip.hourlyBounceRate < 0.05)
// Fall back to any active IP if all are bouncing above threshold
return (healthy[0] ?? candidates[0]).ipAddress
}
Add an active boolean column to the SendingIp table so a damaged IP can be removed from rotation by setting active = false — no code deployment required. Pair with the warmup schedule check from deliverability-engineering.warmup-reputation.automated-warmup-schedule so IPs in early warm-up are not selected for full-volume sends.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Deliverability Engineering Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- iso-25010:2011 · reliability.availability — ISO 25010 Availability sub-characteristic
Taxons
History
- 2026-04-18·v1.0.0·Initial import from deliverability-engineering·automated