是否有关于新(或重要)推文的推送通知?
这些问题将决定最终设计的系统长什么样。
第二步:系统接口定义
定义系统期望的接口(API)不仅可以帮助建立预期的接口协议 ,也可以确保我们没有弄错需求。...比如类似 Twitter 的服务的接口可能是这样的:
postTweet(user_id, tweet_data, tweet_location, user_location, timestamp, …...)
generateTimeline(user_id, current_time, user_location, …)
markTweetFavorite(user_id, tweet_id, timestamp...这对于决定我们如何管理流量和平衡服务器之间的负载。
第四步:设计数据模型
早一点定义数据模型可以弄明白数据如何在不同组件之间进行流转。数据模型将指导数据分区和管理。...像 Cassandra 这样的 NoSQL 是否最适合我们的需求,还是应该使用类似于 MySQL 的解决方案?我们应该使用哪种块存储来存储照片和视频?