Architecture Adventure: Writing a distributed architecture from scratch