POST v1/message
Body: Group ID, message (100 char limit)
GET v1/messages/{group_id}
Messages DB:
SQL DB:
We need a client, service, Cassandra DB and a SQL DB
Home Screen (see all the chats you are in):
Client -> Service -> Query Memberships Table
In Group Chat:
See messages:
Client -> Service -> Query Cassandra table for messages with Group ID
Send Message:
Client -> Service -> Write to Cassandra DB
Dig deeper into 2-3 components and explain in detail how they work. For example, how well does each component scale? Any relevant algorithm or data structure you like to use for a component? Also you could draw a diagram using the diagramming tool to enhance your design...
Explain any trade offs you have made and why you made certain tech choices...
Try to discuss as many failure scenarios/bottlenecks as possible.
Image support using blob storage and CDNs