https://www.packtpub.com/product/software-architects-handbook/9781788624060