Software Architecture - It All Depends

Now that I’ve reviewed some of the key software architectural styles, let’s see a side-by-side comparison of various architectures in terms of the architectural quality attributes:

This table shows that choosing the right architecture involves tradeoffs. Each of the architectures has its strengths and weaknesses, and thus the “best” architecture style is highly dependent on the context (goals, business needs, budget, etc.).

When making an architectural choice, a good insight to keep in mind is that the current choice should be good for the current needs of the business. Over time, the business will evolve, and as a result the software architecture will need to evolve to be effective.

If I had to recommend a style for a team that’s just getting started, I would recommend going with the service-oriented architecture as a good middle-of-the-road option. This architectural style is easy to start with, scores medium or high across all the attributes, and can evolve easily with the change in business needs.

Finally, I’ve summarized the previous blog posts into a downloadable PDF sheet that you can download.

The full list of all the posts in this series is: