Architectural Patterns for an Efficient Delivery Pipeline
Continuous integration has made development faster and more reliable. However, as codebases expand, organizations are finding that their build pipelines slow down dramatically. One of the most common reasons is that we often rebuild parts of the system that don't need to be rebuilt. This can happen when the code structure isn’t a faithful representation of the logical dependencies between the different parts. This prevents the pipeline from detecting which parts of the system are impacted by a change and which ones aren’t. Abraham Marin-Perez describes common scenarios in which the structure of the code doesn’t represent the real internal dependencies, forcing unnecessary rebuilds. These include cases when a module depends on both the definition and the implementation of a library (when only the definition is needed) or a tiered application where all layers need to be rebuilt every time a new feature is added. Abraham explains how to fix each of these, sharing the necessary tools to re-architect code for a more efficient delivery pipeline.