An exploration of the boundaries between pieces of code, including:
isolated testing, behavior vs. data, mutation vs. immutability, how data
shape affords parallelism, transforming interface dependencies into data
dependencies, and what it might look like to build systems using all of
these to guide the boundaries between objects and components.