Some missing infos...
- As load balancer I'm using a pair of keepalived with simple setup and not the DNS
- Load balancer algorithm is "Weighted Least-Connection"
- About 20 domains and 3000 email
- I'm monitoring my backend servers with poolmon
- The backend servers are virtual machine (vmware) with datastore on "all flash" storage
based on yours notes, I think the better choice is Replication. Correct?
In my experience it's best to keep complexity low because the fewer components you have, the fewer can fail. With replication you basically have two independent servers that asynchronously sync emails.
While it would work with loadbalancers/keepalived/director they are not necessary. If this is the way you want to go you should configure the loadbalancer to always send the same source-ip to the same backend (ip stickyness). Mailclients do open several connections in parallel and they should see the same data.
With DNS this happens automatically because ips are rotated by resolvers and the mailclient gets the same ip for all its connections. Failover is builtin as mailclients just connect to the second ip when the first is not reachable.
Replication works reliable with mdbox/sdbox but you should avoid maildir.
Best regards Gerald