Evolution of MicroService

Software Design Principles in chronicle Order:
Decomposition is well known design pattern which promotes separation of concerns and code re-usability.
Mimic the business problems in terms of object and entities.
Language Specific.

Shared Libraries 
provide the Ubiquitous availability.
Usually the language of implementation and consumption is same. Lead to tight coupling.

Component Enhancement over shared libraries. Example COM, CORBA.
Reuse across languages. Binary protocol serve as firewall between the component and caller.
Disadvantage Not web/internet friendly.

SOA Improve over component based development(CBD) Industry specified WS-* specs.
Internet friendly.

Then comes the MicroService which is treated as the subset of SOA also called as SOA 2.0.
Improved version of SOA. Application powered by multiple autonomous services i.e. independently changeable and deployable. MicroServices are loosely coupled. Each service has its own database.

MicroService design principles are:
High cohesion (Business Focus one thing to do)
Autonomous (Independent) No direct communication. Only through network.
Business Domain Centric (Account/Order)
Resilience (Failure)
Observable (Monitoring/Logging)
Automation (Integration/Deployment).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s