Hello

https://imapsync.lamiral.info/ is what we use at LINAGORA for email migration.

SMTP traffic can also easily be duplicated but mailboxes will be desynchronized.

Also I had a reference write up about multi-datacenter, quoted by friend of Aerospike at FOSDEM 2024

https://james.staged.apache.org/james-project/3.9.0/servers/distributed/architecture/consistency-model.html#_about_multi_data_center_setups

Be sure to get a read of this document: the target setup mentionned is not achievable, at least with IMAP and the current code base.

Best regards,

Benoit

On 08/03/2025 03:05, cryptearth wrote:
Hello there dear James devs and fellow James users,

my hoster OVH currently offers me a great deal on VPSs for less than 12 bucks a year (less than 1 buck per month) in several datacenters around the world. I really tempt to get that deal as I have some ideas to utilize multiple servers - having them around the world like in Australia and Canada is just a bonus. One thing I plan to implement is to setup James on each of the servers. But then the question came up: How to synchronize them? Currently I use my home server only as a backup without any synchronization with my main root server. In fact: It's currently not running due to some issues I have with my home server I have to fix first before get James running again. Now when scaling up to several servers around the world it would be cool to take advantage of that by combine them with synchronization. But as the additional systems are VPSs only I'd like to setup a master-slave setup with each slave James on the VPSs sync up to the master James on my powerful root server. First I thought about fetchmail to at least pull in mails from the slaves to the master - but fetchmail is only part of the deprecated spring build. As I like to have my mailstorage in a database I would like to keep using the guice-jpa build instead of switching the the guice-distributed which doesn't use jpa and seems to be meant for use with AWS S3 buckets. I also could write some java code using the java mail api working in a fetchmail way itself - but I'm unsure how to inject mails from other servers properly into the main server so they do look like if they were receive by the masterserver itself. Could it be done by just synchronizing the MariaDB databases in the background or would fiddle with the database while James is running screw it up like the several counters for mails and mailboxes? If James 3.x isn't suited for such a use case maybe that's something to be considered for 4.0? Or is that too late into the current development now and would delay a 4.0 release?

I would like to explore this idea further to see if and how James can be used in a distributed cluster like other mailers can. Building a James mail server cluster sounds just cool - and seen from "well, big companies like google have several hundrets to thousands mail servers deployed around the glob all working together" it sure has to be possible with James as well - as broken down it's just some listeners on some server sockets with some database backend synchronized by a message bus. This should be extendable across multiple servers.

Have a nice weekend everyone.

Greetings from Germany,

Matt

---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org
For additional commands, e-mail: server-user-h...@james.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org
For additional commands, e-mail: server-user-h...@james.apache.org

Reply via email to