This page is for design considerations around Messaging in Synapse.
Drivers include:
Jira Legacy | ||||
---|---|---|---|---|
|
...
Jira Legacy | ||||
---|---|---|---|---|
|
Jira Legacy | ||||||||
---|---|---|---|---|---|---|---|---|
|
Features / Considerations
Is it truly a requirement not to reveal users' email addresses to each other?
Authorization: Who can send a message to whom? Is it OK to allow any user to contact any other user, or should there be some kind of acceptance first (as in Facebook)?
Do users want a web-browser based email experience, or should messaging be relegated to users' mail clients?
Event notification: Is this just for messages initiated by users, or should it support notification of events in Synapse (e.g. entity deletion, entity sharing...)
Should we support attachments (might be synapse file handles)? mark-up/down?
Should Synapse keep a record of messages sent?
...
Is it sufficient to allow sending messages to principals (users and Teams) or do we need other targets? E.g. users might "follow" an entity and other users could "notify" all followers of that entity with a message. Or users could "follow" a user and each user can then send a message to all their followers.?
Design
...
Alternatives:
- No proxy: Synapse just provides the user an email address. Email is sent OOB. (Might generate temporary email address to hide actual user address.)
- Simple pass through: Message goes through Synapse but Synapse doesn't retain any record.
- Message history. Synapse keeps each message.
- Web mail client: Synapse implements full-blown web-based mail client with folders, trash can, search, sort.
Other
Existing systems
- myregence.com simply provides
- in box
- out box ("sent messages")
- display a message
- compose / send a message
- reply
- delete
- discovercard.com is similar to myregence: in box, display, sent messages, compose, NO delete (messages deleted after 30 days)