Pre-SOA (Monolithic and Tiered Architectures) Vs SOA Vs Microservices View
Pre-SOA (Monolithic and Tiered Architectures) Vs SOA Vs Microservices View
Pre-SOA (Monolithic and Tiered Architectures) Vs SOA Vs Microservices View
A Microservice is:
Independent,
o autonomous in implementing a minimal unit of work,
o autonomous in persisting its data,
o autonomous in its implementing programming language,
o autonomous in its deploy.
Integrated,
o communicate with other services exchanging messages over the network,
o its work (and so implemented functionality) may depend on one or more other services.
Lightweight,
o its process has not a relatively big footprint.
Minimal,
o normally a single service does not provide a considerable complex functionality, to get that
various services have to be orchestrated.
Pipeline-ready,
o naturally a Microservice is designed to be plugged into a processing Pipeline.
Stateless,
o its request processing does not depend for the history of the previous requests.
Scalability,
o lightweight services can be combined very easily and can be replicated with almost 0-effort to
scale horizontally according to the demand.
Decoupling,
o no dependencies, no common execution environment, no interrelated interfaces means that a
Microservice is a very loose coupled unit of execution.
Agility,
o services’ autonomy (above described) imply degree of freedom for developer to develop and
maintain their own Microservices, and in turn freedom is a key incentive of overall agility
(intended as ability to react quickly to changing scenarios).
Cost-effectiveness,
o again, the autonomy above discussed allows to have developers concentrated in developing their
own functionalities with very few constraints and/or inter-dependencies, this aspect translates in
a much higher velocity.