Who will generate the increasing number for twitter_id?

One or two centralized nodes?
If it is the case, it is a single point of failure. If use two, it may not be the strictly ordered by timestamp.

Each service nodes itself?

Type your question above this line.


Yes, if there is only one aggregate server, it will be a single point of failure. That is why we have many, and any one of them should be able to service timeline making requests. A load-balancer can select which aggregate server to use. (Any aggregate server can do the job because it can contact DB shards to collect the required state.). Now, if tweet-Id has wall-clock time in it (as specified in the lecture) and we assume that clocks across servers are synchronized (at least at a second granularity), then tweet ordering will match real wall-clock ordering except for those tweets that came in, at the same second (in that case time bits for all tweets in a specific second will be the same, and only sequence no will be different. So, in other words, we used an artificial order in that case). Now, synchronizing clocks in a distributed system is not a trivial problem but is doable.
Thank you for your feedback.