Even if your host doesn’t require it, it’s always a good idea to do periodic maintenance on databases, like vacuuming in postgresql, etc. They’re terrible at garbage collection.
I don’t know which backend you use, but if you do it right, you can failover without having to bring the application down. Requires a little design and planning first, though. I use mongodb at work and you can fail over to any one of the secondaries and then add a new node to the cluster… pretty sure that works.
To be fair, we have no end of sync problems in postgres. I guess some things are just intractable.