I've started playing with replication for courier. The objective is
to maintain synchronization between totally separate mail systems for
availability purposes. The underlying structure of maildirs lends
itself to this quite nicely, and the synchronized state tracking for
IMAP (uid/uidvalidity) isn't too bad, although there's a number of
pathological cases that don't work terribly well.
At any rate, it's something I intend to build into a functional
system. Currently there's a patch and a replay script available at
http://www.rcpt.to/courier/ that is a first tottering step in that
direction. The patch instruments various places in courier (maildir
operations) and writes a transaction log.
The replay script can parse the transaction log and build a maildir
elsewhere that looks more or less similar to the real one. The script
is fairly stupid at the moment; it doesn't do locking, conflict fixups
exist as comments rather than code at best (and, in fact, mostly in my
head right now), and there's a number of assumptions to do with
directory structure.
This is an FYI rather than an announcement - I'm soliciting comments
from anyone that has anything to say about the idea :)
m.