Module 11 · Lesson 23 of 25

Spool durability and node failover

Part of KumoMTA: High-Volume Sending Engine — HA Architecture & Sharding.

KumoMTA uses RocksDB for the queue spool. Survives crashes and reboots, but a dead node's queues are stuck on that node's disk.

Two patterns for resilience:

1. Pair of nodes per shard with shared NVMe / DRBD storage. If node A dies, node B mounts the spool and resumes. Fastest failover but ops-heavy.

2. Active/active with brief duplicate-send tolerance. Spool stays local. If a node dies, route new mail to surviving nodes. Mail already on the dead spool waits for recovery (usually <30 min on modern infra). Tolerate brief delays for resilience simplicity.

Most ESPs choose #2. Plus they maintain hot spares ready to mount a snapshot from object storage.

Backup the spool: RocksDB checkpoints can be copied to S3 hourly. Restore-on-new-node tested quarterly.

Sign in to keep track of what you have read.

Pulse · self-hosted sending

Own the infrastructure your pipeline depends on.

One install script on your own server. Pulse sets up the MTA, mailboxes, certificates and dashboard; you add domains and start sending.

# on a fresh Ubuntu server
$ cd pulse && sudo ./install.sh
→ docker compose up · kumomta · stalwart · caddy
→ dashboard ready on https://pulse.yourdomain.com
$

Also from us:Beat — monitoring that tells you the fixConsulting — $65/hr, no retainer