An introduction to distributed systems | Open Awesome