Learning Distributed System by Cloning YouTube: Part 1 - System Design