- you can keep a service running long after the project that created it has disbanded and/or the runtime and build environment is deprecated on a given O/S
- you don't necessarily need to deep-dive into the business logic of legacy services
- you can replace a service implementation with another one running on another stack without having to adapt service clients
- you can change auth mechanism outside of the service implementations
- you can scale out (CPU-bound) services onto multiple hosts
Mind you, these benefits are not achieved by using microservices/SOA in itself; the contribution of microservices/SOA, however, is that these design goals aren't impossible to achieve because of architected reasons.
- you can keep a service running long after the project that created it has disbanded and/or the runtime and build environment is deprecated on a given O/S
- you don't necessarily need to deep-dive into the business logic of legacy services
- you can replace a service implementation with another one running on another stack without having to adapt service clients
- you can change auth mechanism outside of the service implementations
- you can scale out (CPU-bound) services onto multiple hosts
Mind you, these benefits are not achieved by using microservices/SOA in itself; the contribution of microservices/SOA, however, is that these design goals aren't impossible to achieve because of architected reasons.