...
Name | DBO | Migration | DTO | ||||
---|---|---|---|---|---|---|---|
(Immutable after creation) |
| Backup via ID Note: Etag is required because MessageStatus is mutable. | Interface
| ||||
(Immutable after creation) |
| Secondary to MessageContent | Implements MessageContent
| ||||
(Immutable after creation) |
| Secondary to MessageContent | |||||
|
| Secondary to MessageContent |
| ||||
(Immutable after creation) |
| Secondary to MessageContent | Implements MessageContent
| ||||
(Immutable after creation) |
| Secondary to MessageContent | n/a | ||||
|
| TBD |
| ||||
|
| TBD |
| ||||
| Bundles the Message MessageToUser and Message Status |
|
|
Other
- Message ID generator
- Thread ID generator
- Email mechanism
- Use Amazon SES
- Since we've decided to use SES, we should use their REST API rather than their SMTP API.
- The Gmail server may be useful for handling bounced messages.
- This will make the following two mocking methods impossible:
- Mocking javax mail: http://ollivander.franzoni.eu/2011/08/30/mock-javamail-primer/
- Mocking an SMTP server: http://quintanasoft.com/dumbster/
- Use Amazon SES
- Message delivery will be via worker, i.e. asynchronous (in most cases) with respect to message creation.
...