The 3 inspiring principles of microservices

The three inspiring principles of #microservices originate from:

1) Alan Kay definition of OO, 1967
2) Conway’s law, 1968
3) Unix design philosophy, 1969

1) Alan Kay definition of OO
The big idea of OO for its inventor is “messaging”. OOP to Alan Kay means only messaging, local retention, protection and hiding of state-process, and extreme late-binding of all things. Internet, for OO inventor, is possibly the only real object-oriented system in working order, in which the basic unit of computation was a whole computer.

A microservice runs in an isolated independent process, it's highly decoupled from other services, communicates only through a lightweight mechanism like a HTTP resource API, and it functions and can be deployed independently.

2) Conway’s law
Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.

A microservice is built around a business capability that has a clear value proposition.
Each team is multi-disciplinary, cross-functional, autonomous and it's built around one or more microservices with a common value proposition.

3) Unix design philosophy
One of the principles around Unix design philosophy is this: Make each program do one thing well.

This is where the 'micro' in microservices comes from.
Unix was built from the ground up and was grown slowly over time. When building a big application in a short period of time, it's difficult to get the boundaries of a microservice right from the beginning. So it’s okay to start with a larger non-micro service and break it down later, while the boundaries emerge.