Decoupling separates unrelated components while grouping related code, organizing complex systems into simpler units that communicate. section 1.3
Concurrency can serve as a decoupling strategy: dividing functionality among modules or units of concurrency separates what gets done from when. This can make components more maintainable and reduce system complexity. section 1.3



