All glossary terms
Design

Service-oriented architecture (SOA)

Service-oriented architecture is the design approach that structures applications as a collection of services communicating over a network — distinct from monoliths (single application) and microservices (small, independently deployable services). SOA was the enterprise pattern of the 2000s; modern microservices are its lighter-weight successor.

Classical SOA had heavyweight characteristics: SOAP/WSDL service contracts, enterprise service buses (ESB) for message routing, centralised governance. Microservices reacted against this weight: REST/JSON over HTTP, no ESB (services call each other directly), decentralised governance. The two are on a spectrum rather than fundamentally different: both decompose by capability, both expose services over the network, both face the same distributed-systems challenges. The vocabulary persists in enterprise contexts where SOA-era investments are still in operation, and the lessons (versioning, contract management, governance) carry forward to microservices.

Related terms