User to User Messaging Design Goals
Privacy - No entity should have access to users messages - only the 2 participating users should have access to the content of their messages.
No entity should be able to censor a user from sending messages to another user and receiving messages from him over the platform.
Platform should guarantee all eventual messages delivery. e.g. a bounded time after a receiver client goes online.
Providers should not have access to messages content.
Providers should not be required to save messages for a long period of time beyond what is necessary to route messages between users.
Users should be able to block other entities from messaging them.