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