Search code examples
microservicesdistributed-computingterminologysoa

What is the difference between SOA and Microservices?


My understanding is that both in SOA and in Microservices modules should be independant and reusable. But what really distinguishes the two?


Solution

  • Both rely on the services as the main component but a lot of differences there. Few are below

    SOA:

    • Follows “share-as-much-as-possible” architecture approach
    • Supports multiple message protocols
    • Multi-threaded with more overheads to handle I/O
    • Maximizes application service reusability
    • Not focussed fully into DevOps / Continuous Delivery

    MicroService:

    • Follows “share-as-little-as-possible” architecture approach

    • Uses lightweight protocols such as HTTP/REST & AMQP

    • Single-threaded usually with use of Event Loop features for non-locking I/O handling

    • More focused on decoupling

    • Strong focus on DevOps / Continuous Delivery