Is “microservice” too watered down to be a useful term?
I've been searching for a clear consensus definition of microservices for 3+ years, and still have none, just gazillion pet definitions. Stored Procedures "count" under some candidate definitions but not others. Same with Linux piping.
Some emphasize technology, others emphasize org structure/management. "How to modularize properly" is an age old problem that involves many factors & tradeoffs, domain experience, and knowing Conway's Law. Can this vocabulary problem be cleaned up? I'm boggled, your turn...
2 comments
[ 4.2 ms ] story [ 14.3 ms ] threadOne aspect where I think it is accurate is that “microservices” is an architectural approach of how to modularize an application into services, as opposed to a clear-cut definition of whether a given single service qualifies as a “microservice”.
I don't intend to "be a jerk" in such debates, it's just that way too many software engineer terms are ill-defined or tied to subjective assumptions. The Emperor has ambiguous clothes.
As far as microservices, explicit examples of what is and what isn't would help. About the only mutual agreement is the problems of creating "one big executable" when it should be split into multiple. But that issue has been around since the dawn of executables. It's older than me, and that's friggen old. It also wouldn't apply to many dynamic languages such as Php, where a script file can be swapped out or updated without any recompiling. Does that make a Php app with 100 files have "100 microservices"?