To manage the lifecycle of an application, it's become common practice to divide the system up into components, with dependencies between them. Stuart Sierra's Component library was the first to popularize this concept and can still be considered the reference implementation. The pattern is simple enough, but it does require some knowledge of Clojure's types and records functionality, so those are introduced first. This series also covers the System library, a handy collection of reusable components.