Continuing with service-oriented architecture (SOA)
SOA promotes reusability across the entire enterprise landscape by exposing business capabilities in the form of services. SOA emerged in the last decade of the previous century, with the aim of decoupling applications. Before SOA, it was very common to have client applications directly connect to each other, or to a shared database with read/write permissions. This led to big issues and to the formation of an enterprise-level monolith, as described in the previous section, to the extent that changing anything could pose problems to many applications, leading to a lack of agility and an ever-increasing amount of time required to make small changes.
The following diagram shows a typical SOA implementation: