This post is part of The Software Architecture Chronicles, a series of posts about Software Architecture. In them, I write about what I’ve learned on Software Architecture, how I think of it, and how I use that knowledge. The contents of this post might make more sense if you read the previous posts in this series.
The SOA Style has been around since the late 1980s and has its origins in ideas introduced by CORBA, DCOM, DCE and others. Much has been said about SOA, and there are a few different implementation patterns but, in essence, SOA focuses on only a few concepts and doesn’t give any prescription on how to implement them:
- Composability of user-facing applications;
- Reusable Business Services;
- Technology stack independent;
- Autonomy (independent evolution, scalability & deployability).
SOA is a set of architectural principles independent of any technology or product, just like polymorphism and encapsulation are.
In this post I am going to address the following patterns related to SOA: