What is the difference between SOA and microservices?

Can anyone please tell me the difference between SOA and microservices.

Conventional SOA follow monolithic approach where a big scale app is developed and then further features if needed, are added by code in it. But you will have to recreate everything in case of SOA even if you apply a minor update because of the high level dependency. The present times demand for Micro Service Architecture wherein we create multiple individually focused modules with well defined interfaces and then combine them together to make a scalable, testable product. The product or software which might have taken an year to deliver can now be delivered in weeks with the help of Micro Service Architecture.

Database - SOA consists outsized RDBMS whereas Microservice Architecture use micro-SQL

While SOA focuses on imperative programming, the microservices architecture uses a programming style that focuses on a responsive-actor as its base. While SOA models usually have an outsized RDBMS, microservices frequently use databases such as NoSQL or micro-SQL that can be connected to conventional databases. That said, the real difference lies in the architecture methods that are used for creating an integrated set of services.

Speed of communication - SOA uses ESBs a.k.a Enterprise Service Buses which is comparatively a lot slower with respect to messaging mechanism used in Microservice Architecture.

However, microservices are in trend, one needs to be vary about the different testing methodologies applied for them.