SOA
Some people ask: “Isn’t microservices architecture just another name for SOA?”
Service-Oriented Architecture (SOA) sprung up during the first few years of this century, and microservices architecture (abbreviated by some as MSA) bears a number of similarities. Traditional SOA, however, is a broader framework and can mean a wide variety of things. Some microservices advocates reject the SOA tag altogether, while others consider microservices to be simply an ideal, refined form of SOA.
The typical SOA model, for example, usually has more dependent ESBs, with microservices using faster messaging mechanisms. SOA also focuses on imperative programming, whereas microservices architecture focuses on a responsive-actor programming style. Moreover, SOA models tend to have an outsized relational database, while microservices frequently use NoSQL or micro-SQL databases (which can be connected to conventional databases). But the real difference has to do with the architecture methods used to arrive at an integrated set of services in the first place.
Since everything changes in the digital world, agile development techniques that
can keep up with the demands of software evolution are invaluable. Most of the
practices used in microservices architecture come from developers who have created
software applications for large enterprise organizations, and who know that today’s
end users expect dynamic yet consistent experiences across a wide range of devices.
Scalable, adaptable, modular, and quickly accessible cloud-based applications are in
high demand. And this has led many developers to change their approach.