Why would anyone define microservices as an architecture choice?
If you're already familiar to microservices, then the answer to the question above might seem quite obvious. But if you aren't, like me, then you might learn some new concept today.
So, I've recently got his book titled "Building Microservices: Designing Fine-Grained Systems" by Sam Newman and I'm going to write some content as I read, and understand, it :).
Microservices are technology agnostic; they are independently deployable; they embrace the concept of information hidding.
Here is a statement I really like and find extremely important within the confines of... software?, system? development. Whatever.
“Information that is hidden from external parties can be changed freely as long as the networked interfaces the microservice exposes don't change in a backward-incompatible fashion.”
Sam Newman
That makes the whole system modular and reliable.
But what kind of system could it be? Are we talking about a standalone software consisting of various microservices? Perhaps, a bigger picture of a system consisting of a few softwares, each of them working over microservices at the same time?
Well, let's get through this by describing a few illustrative examples!
