Overview
SOA is a design pattern where application components provide services to other components through a communication protocol, typically over a network. It emphasizes loose coupling and the use of standard interfaces.
Key Concepts
- Service: A self-contained unit of functionality.
- Enterprise Service Bus (ESB): A centralized tool that manages communication between services.
- Loose Coupling: Services are independent and don't need to know the internal workings of others.
SOA vs. Microservices
While both use services, SOA often relies on a centralized ESB and can involve larger, more complex services, whereas microservices focus on small, independent, and decentralized components.