18 bytes -> 18000000 bytes -> 18 MB
Because its taking so little memory, no need to scale DBs yet
Status Table:
Client -> Loadbalancer -> Rate Limiter -> Websocket -> Server -> Database
Client side can calculate inactivity and send idle status after x amount of time of no activity
Client can directly set status
Client would also establish a websocket connection to get real time update of their friends statuses
ServerSide would send status update with timeStamp to clientside to clients through the websocket
Use Pub/Sub pattern along with websocket to update everyones friends list when a friend changes status
Explain any trade offs you have made and why you made certain tech choices...
Too many writes to update status at a time
Add features depending on what users request
Possibly add a chat system