Re: synchronize multiple James instances across servers

Benoit TELLIER <[email protected]> Sat, 8 Mar 2025 09:51:05 +0100
Newsgroups gmane.comp.jakarta.james.user
Message-ID <[email protected]>
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: [email protected]
> For additional commands, e-mail: [email protected]
>
>