Hello,
I'd like first to thank the authors of Cyrus IMAP which is a great software. I'm designing an architecture of mail servers using it and I have questions regarding replication.
I have seen somewhere in the documentation that servers were usually deployed in pairs with replication between them. I suppose then that there is a master and a slave. What is not clear however is how to ensure that the state is kept equal between the two servers.
In particular, if the master server goes down, and the slave server is used instead, the two servers will become out of sync. The master might have some changes that it did not had time to replicate to the slave, and the slave in between become a temporary master and had new changes as well. How to reconcile this?
Can replication be set up from the slave back to the master? What are the risks in such a scenario (what if there are conflicting changes)? Is it possible to setup incremental synchronization in both directions, can the protocol cope with that?
Also, working with Cyrus, I developed a small SASL plugin that asks a HTTP server for user accounts here : https://github.com/mildred/sasl2-httpdb It's still in very early stage but I believe it could be useful to more people. it depends on libcurl.
Thank you