Functional RequirementsThis includes clarifying what are the functional requirements of the system we need to design
Non Functional RequirementsThis includes clarifying what are the non functional requirements of the system we need to design. Examples include Consistency, Availability, Latency, Partition Tolerance etc.
Capacity EstimationYou are expected to come up with best estimate of the scale of this system in terms of Memory, Storage, Transactions per second, Daily Active Users(DAU) etc.
High Level and Detailed Design You are expected to come up with first a high level design with end to end flow and then deep dive into few areas of your design and discuss tradeoffs on your solutions in terms of your decision on caching strategies, DB selection, SQL v/s NSQL etc.
Design Refinement and Closing NotesFinally, You are expected to wrap up by discussing a few refinement ideas that you could do to your design if you had the time and provide ideas as to how your design would change if your system now accepted 10x or 100x more traffic