Realising the irony of commenting on this given the sibling, but for the sake of accuracy:
> with Matrix if you join a group chat hosted on another server, the entire history of the chat gets synced to your server.
This is not true. By default most Matrix implementations sync the last 20 messages in a room when a server joins that room, pulling in other messages only on demand if a user back-paginates the room. Room state (i.e. key-value metadata about the room) also no longer gets synced in atomically at join - instead it gets pulled in in the background (so-called 'faster joins': https://element-hq.github.io/synapse/latest/development/syna...).