Build strong foundations with key abstractions and models
Understanding system abstractions and their importance in design
Scalability, reliability, availability, and performance requirements
Understanding different failure modes and consistency guarantees