Users exchange messages in real time. Recipients who are online should see messages instantly; offline recipients should get a push notification and see the message when they return. Message history must persist and be queryable, and the system must support many concurrent connections without a single server holding all the state.
Requirements
·Online recipients should receive messages with minimal delay
·Offline recipients should be notified and see missed messages later
·Message history must persist beyond any single server's memory
·The system should tolerate one server instance going down without losing the ability to deliver messages
·Online recipients should receive messages with minimal delay
·Offline recipients should be notified and see missed messages later
·Message history must persist beyond any single server's memory
·The system should tolerate one server instance going down without losing the ability to deliver messages