The Plumber's Approach to Distributed Systems