Trunk-based development integrates small changes frequently into a shared mainline. Platform teams preferably pair-program and push directly to trunk, while short-lived story branches or pull requests remain acceptable when changes merge at least daily, preferably more often. section 6.3.3
Apply the practice by:
- Keeping branches short-lived rather than allowing long-running divergence. section 6.3.3
- Merging changes frequently into main, ideally through direct pushes or GitHub pull requests. section 6.3.3
- Treating infrastructure pipelines as software pipelines, with integration connected to a fixed path toward production. section 6.3.3
Figure 6.10 Well-architected Infrastructure-as-code pipelines are no different from well-architected regular software pipelines. This is why we prefer the term “software-defined infrastructure” to differentiate between simply using an infrastructure-as-code (IaC) framework like Terraform and the software engineering practices that are a part of sustainable, high-quality software developer lifecycle management of an engineering platform product.
Compare trunk-based infrastructure work with broader software-pipeline practices such as testing, static analysis, and staged deployment. section 6.3.3



