[chat] real time system design

昨天面试碰到一个题目,来自一家在线文档公司。
Design a snapchat like application.

  1. can send text and image
  2. can have more than one recipient
  3. remove message when all the receiver has seen the message from the server side.

What does the system look like?

Q: How do we make sure we do not lose any message?
Q: How exactly do we keep track of the total number of messages delivered and which service keeps track of the total delivered message count?

想问一下 How do we make sure we do not lose any message? 这个需求怎么做到呢?

@logic 求解答这个问题

这个题目的难点在于阅后即焚。就是保证在所有人看完之前这个信息存在,之后就看不到。需要比较精确地控制这个权限,然后真正删除这个图片文件。

Q: How do we make sure we do not lose any message?
这部分跟 whatsapp msg 不丢失是一样的。

Q: How exactly do we keep track of the total number of messages delivered and which service keeps track of the total delivered message count?
这部分需要一个 SQL DB 实时更新 message count