Service-oriented Architecture (SOA)
Microservice architecture
Focuses on imperative programming
Focuses on a responsive actor programming style
Its models tend to have an outsized relational database
Microservices frequently use NoSQL or micro-SQL databases (which can be connected to conventional databases)
In SOA, ESB implements communication between mutually-interacting software
In microservices, independent processes communicate with each other using language-agnostic APIs
It is easier to deploy new versions of services frequently, or scale a service independently
Services can operate and be deployed independently of other services
SOA has ESB, which could be a single point of failure that impacts the entire application
Microservice architecture has a much better fault-tolerance system
Data storage is shared between services
Each service has its own data storage