In Chapter 6, Creating Components you learned how to build components, define their APIs, and connect them via core.async channels. Now we’ll look at how to assemble those components into actual applications.
We’ll start by considering how to take a problem and break it into component-size pieces. Then we’ll define the state and API for each component and finally assemble them together into an application.
Each component has its own configuration data. We need to define a strategy for loading configuration from one or more external sources that’ll serve us both in development and in various deployment environments. We’ll consider two libraries that help with configuration.
Let’s start with deciding how to ...