Requirements: Analysis Data Model High Level Design Low Level Design API Services Required Non Functional requirements Caching High Availability Scaling the system Security Post navigation Design Shared Drive Leader Election in Distributed Systems