I’ve been reading up on Microservice Architecture and I am trying to see a difference between it and regular SOA (apart from the services all deployed individually). Can anyone tell me the difference and maybe the pro’s and con’s of Microservice Architecture?
The core difference between SOA and microservices lies in the size and scope. As the word “micro” suggests, it has to be significantly smaller than what SOA tends to be. Microservice is a small(er) independently deployable unit. Beware of very small microservice antipattern – nanoservice. A SOA can be either a monolith or it can be comprised of multiple microservices. Martin Fowler says he likes to think SOA to be a superset of microservices.
So, SOA is an architectural pattern in which application components provide services to other components. However, in SOA those components can belong to the same application. On the other hand, in microservices these components are suites of independently deployable services.