Design and build an enterprise messaging service.
Example use case: Trading desk chat application. Should be cross-functional (Forex -> Equities). Should be person to person. Should be auditable.
- The service should support multiple types of clients (web, native mobile, etc).
- Messages should be delivered in real time.
- Messages should be persistent/auditable.
- The service should support broadcasting messages to groups or individuals.