Chapter 5. Building Distributed Systems and Working with Flexible Data