Service-Oriented Architecture (SOA)
An architectural approach that uses services as the central building blocks for software application development.
Classification
- ComplexityMedium
- Impact areaTechnical
- Decision typeArchitectural
- Organizational maturityIntermediate
Technical context
Principles & goals
Use cases & scenarios
Compromises
- Dependency on external services
- Security risks due to open interfaces
- Lack of standardization can lead to inconsistencies
- Documentation of services and interfaces.
- Regular review of service efficiency.
- Compliance with security standards.
I/O & resources
- Existing systems and their interfaces
- Integration requirements
- Services for data processing
- Integrated system landscape
- Increased flexibility
- Reusable services
Description
Service-Oriented Architecture (SOA) is an architectural approach aimed at structuring software applications through the provision of services. These services are loosely coupled and can be developed, deployed, and scaled independently. SOA promotes the reuse of software components and enables flexible integration of various systems.
✔Benefits
- Increased flexibility in software development
- Better integration of systems
- Optimized resource utilization
✖Limitations
- Complexity in managing services
- Potential performance degradation due to network calls
- Higher effort in development and maintenance
Trade-offs
Metrics
- Service response time
The time taken by a service to respond to a request.
- Service availability
The percentage of time a service is available.
- Error rate
The proportion of failed requests to a service.
Examples & implementations
E-commerce platform
An e-commerce platform that utilizes various services for payment processing, product catalog, and user management.
Online banking system
An online banking system that integrates services for transaction processing and account management.
Travel booking platform
A travel booking platform that utilizes various external services for flights, hotels, and car rentals.
Implementation steps
Analyze existing systems and requirements.
Develop the services and their interfaces.
Conduct tests and quality assurance.
⚠️ Technical debt & bottlenecks
Technical debt
- Outdated services without maintenance.
- Insufficient documentation leads to knowledge loss.
- Technical debt due to quick fixes.
Known bottlenecks
Misuse examples
- Excessive reliance on a single service.
- Ignoring security requirements.
- Insufficient testing before deployment.
Typical traps
- Assuming all services are independent.
- Underestimating the effort for integration.
- Ignoring performance bottlenecks.
Required skills
Architectural drivers
Constraints
- • Compliance with security standards
- • Regulatory requirements
- • Technological compatibility