Service-Oriented Architecture (SOA)
What is Service-Oriented Architecture (SOA)?
Service-oriented architecture (SOA) is an approach to designing software in which business functions are provided as reusable services with defined interfaces, which other applications call over a network.
Updated November 2026 · 5 min read
Service-oriented architecture organizes software around services. A service performs a well-defined business function, such as checking a customer's credit, calculating a price or creating an order, and exposes it through a standard interface. Other applications use the service without needing to know how it works internally. The aim is to build business functions once and reuse them across many applications, rather than duplicating the same logic in every system.
SOA became prominent in the early 2000s, when organizations sought to connect large enterprise systems and reduce duplication. It was often implemented with web service standards and an enterprise service bus. Many of its ideas, such as defined interfaces, loose coupling and reuse, carried forward into later approaches including microservices and API-led integration. For enterprise architecture and IT finance, SOA remains relevant both as a pattern in many existing systems and as the foundation for how organizations think about reusable services.
Definition of Service-Oriented Architecture
Service-oriented architecture is an architectural style in which applications are composed of loosely coupled services that communicate through defined contracts. Each service represents a business capability or function and can be used by multiple consumers.
It is closely linked to enterprise application integration, since services provide a standard way for applications to share functions and data, and was often implemented with an enterprise service bus.
Core Principles
Services have standardized contracts that define their inputs, outputs and behavior, so consumers can rely on them without seeing their internals.
Services are loosely coupled, meaning changes inside a service do not affect its consumers as long as the contract stays the same.
Services are reusable, designed to serve many consumers rather than one application. They are also discoverable, typically listed in a registry so teams can find and use them.
Services are autonomous, controlling their own logic and resources, and composable, meaning several services can be combined to support a larger business process.
SOA and Microservices
Microservices share SOA's emphasis on services with defined interfaces but differ in scale and governance. Microservices are usually smaller, each owned by a single team and deployed independently.
SOA often relied on a central bus for routing and transformation, while microservices typically communicate through lightweight APIs and events, with logic kept inside each service.
Many organizations run both: older SOA services connected through a bus, and newer microservices built for digital products. Both contrast with a monolithic architecture, where functions are combined in one application.
Importance of Service-Oriented Architecture in Enterprise Architecture
SOA promotes reuse. A single credit check or pricing service used by many applications avoids duplicated logic and inconsistent results. When rules change, such as a new credit policy, the change is made once and applies everywhere the service is used.
It aligns technology with business capabilities, since services are often defined around business functions that can be mapped to a business capability map.
It also makes change easier, since services can be updated or replaced behind stable contracts without forcing changes in every application that uses them. This allows older systems to be replaced gradually, one service at a time, rather than in a single large cutover.
Costs and Lessons Learned
Many SOA programs promised large savings from reuse but delivered less than expected. Services designed for reuse were sometimes too general for any one use, or were reused less than planned.
Heavy central governance and complex standards slowed delivery in some organizations, and central service buses became bottlenecks. Teams sometimes bypassed the official services entirely to meet their deadlines.
Successful programs focused on a smaller number of high-value services with clear owners, and measured actual reuse. These lessons shaped later approaches to APIs and microservices.
Today, much of the cost associated with SOA lies in maintaining older service infrastructure, which may need modernization as its supporting software ages.
Common Challenges
Services that are too fine-grained create many network calls and complex dependencies, while services that are too coarse limit reuse. Finding the right size usually takes iteration, guided by how consumers actually use the services.
Versioning is difficult when many consumers depend on a service. Without clear policies, multiple versions accumulate and add maintenance cost. Each version must be supported, secured and tested until its last consumer moves on.
Ownership can be unclear for shared services, especially when they serve several business units with different priorities. Without a clear owner, requests for changes compete and the service may stagnate or fragment into several copies.
How to Apply Service-Oriented Principles
Applying service-oriented principles today usually means identifying valuable shared functions, exposing them through well-designed interfaces and managing them as products.
The principles apply whether services are delivered through a bus, APIs or microservices.
Designing Services
Identify business functions used by several applications, such as customer lookup, pricing or order creation, using the capability map and application inventory. Functions that are duplicated today, with inconsistent results, are often the best candidates.
Design service contracts around business concepts and stable needs, not around the internal structure of a particular system. Contracts designed this way change less often.
Choose a level of granularity that balances reuse with simplicity, and document contracts clearly so consumers can use them without help.
Managing Services
Assign an owner to each shared service, responsible for its quality, roadmap and support. Owners should understand both the business function and the needs of the service's main consumers.
Publish services in a catalog and manage access, security and usage through API management or a service registry.
Track reuse, performance and incidents, and set policies for versioning and retirement so consumers have time to adapt to changes. Measured reuse shows which services deliver value and which could be simplified or retired.
Examples of Service-Oriented Architecture in Enterprise Architecture
The examples below show service-oriented principles in practice.
Both use illustrative figures. The first consolidates duplicated logic, and the second modernizes older services.
In each, well-designed services reduced duplication and cost.
Consolidating Pricing Logic
A wholesaler calculates prices separately in its e-commerce site, sales system, mobile app and customer portal, and the results sometimes differ.
It builds a single pricing service with a defined contract, owned by the pricing team, and moves all four channels to use it.
Price discrepancies disappear, and changes to pricing rules are made once instead of four times, cutting the effort for each pricing change by about three quarters.
Modernizing Older Services
An insurer runs 180 SOA services on an ESB and application server that are approaching end of support.
A review finds that 60 services are unused, 90 can be moved to a modern API platform with minor changes and 30 need redesign.
The insurer retires the unused services, migrates the others over two years and reduces infrastructure and licensing costs for its service layer by about 40%.
Conclusion
Service-oriented architecture designs software as reusable services with defined interfaces that other applications call over a network. Its principles include standardized contracts, loose coupling, reuse, discoverability, autonomy and composability.
In enterprise architecture, SOA promotes reuse, aligns technology with business capabilities and makes change easier, while its history offers lessons about governance and granularity. Focusing on high-value shared functions, designing contracts around business concepts, assigning owners, managing services through catalogs and tracking actual reuse help organizations apply service-oriented principles effectively.
Related terms
Enterprise Application Integration (EAI)
Enterprise application integration (EAI) is the practice of connecting an organization's applications so they can share data and coordinate processes, using middleware, APIs and standard integration patterns rather than isolated custom links.
Enterprise Service Bus (ESB)
An enterprise service bus (ESB) is integration middleware that provides a shared communication layer through which applications exchange messages, with the bus handling routing, transformation and protocol conversion between them.
Monolithic Architecture
Monolithic architecture is a software design in which an application's functions, such as user interface, business logic and data access, are built and deployed together as a single unit.
Business Capability Map
A business capability map is a structured view of everything an organization must be able to do to carry out its strategy, organized into levels and independent of who performs the work or how.