System Design: Availablity, Scalability, and Types Of Storage.