Module 10 · Lesson 20 of 25

Why you need a director

Part of Dovecot: IMAP/POP3 at Production Scale — Director, Proxying & Horizontal Scaling.

Plain round-robin load balancing breaks IMAP. Two backends serving the same user produce conflicting indexes, missing messages, and UIDVALIDITY mismatches that re-download whole mailboxes.

Director's job: map each user to exactly one backend at a time, with sticky failover.

[ Client ] → [ Director cluster ] → consistent-hashes user → [ Backend N ]

Two deployment shapes:

  1. Director-only proxy: Director runs on dedicated hosts, proxies IMAP/POP3 to backends.
  2. Director-on-backend: Each backend runs director. Simpler, fewer moving parts.

Most production setups choose #2.

Required pieces:

  • All backends share the same auth (passdb returns the same userdb).
  • All backends mount the same mail storage (NFS, GlusterFS, Ceph, or replication).
  • Directors cluster among themselves via director_servers.

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