Follow this blog

Software engineering, design, and psychology

Service-Oriented Architecture (SOA) | Microservice Architecture — Ep. 4

SOA is a predecessor to microservices. It is an architectural style that treats services as independent, heterogeneous providers of business capabilities.

“Heterogeneity” here acknowledges that services may:

  • belong to different vendors
  • run on different platforms
  • be written in different languages
  • communicate over different protocols
  • be developed by different teams

SOA emphasizes:

  • well-defined, explicit service interfaces
  • stability and genericity of contracts to serve multiple consumers over long periods of time
  • service discovery via service registries
  • centralized service administration with approval of contracts, schemas, and compatibility guarantees

The focus on central governance and long-lived, broadly reusable contracts is the key distinction between SOA and modern microservices. It is also its key limitation factor: services cannot evolve quickly because of dependence on central governance and strictness of agreed-upon interfaces.

Follow this blog
Send
Share