jami doesn't store message on a server, at least not in 1:1 connection. It is one of the Achille heel in the sense that if you send a message, your recipient is offline, then you go offline before your recipient goes online the message will not have been delivered and will wait until both are online at the same time. It is particularly annoying because most android firmware + iphone kill the app when it is in the background so that people tend to think it is the app that is not working well whereas it is really the operating system that aggressively kill it and prevent it from working well.
A workaround for the messages not being received is to have an opened session on the desktop version running 24/7 at home.
I read that group chats (swarm) are implemented using git and I think the changes are pushed between clients directly. Again it is nice if you have a permanent group to have at least one client running 24/7
It has the option of doing that, it asks you if you want to enable the backups.
It also allows you to encrypt the backups with a passkey or a password that you can manually set, client-side.
It didn’t always have the encryption option I think.