Software should allow you to choose its architecture at a later date. Now I understand some goals of software are to use a particular piece of architecture for testing purposes, such as a service provided by a 3rd party (Microsoft Azure, Amazon Web Services etc), however code should be as…