I have to admit I never got the hype about microservices. From a programmer's point of view, it should never matter whether you call a function, a "microservice" or bark at the moon.
Simply encapsulate calls to a [micro]service in a function, so it can be replaced by a local/native implementation without changing other code. And then forget about it.
What is a "service" anyway? Something that reads directory contents? Congrats, you just turned readdir(3) into something with a posh name. Or, more abstractly: If a service is something that does a service for you, you just renamed "function" - and found a topic to talk about at length without providing any actual insights.
The only environment where "microservices" provide a real benefit are big, slow companies where moving a functionality into its own service reduces overhead in terms of certification (ISO 900x et al) for the cost of requiring more computational power because you now have to traverse the IP-stack at least 4 times for each call. But ISO-certifications are hardly a problem any startup will ever have.
A well-architected monolith is better than a spaghetti of mis-designed microservices. Microservices don't reduce complexity, they /can/ help manage it better, but only past a certain scale, as the article points out.
They do help achieve better mean time to blame / mean time to innocence, which is important in some organizations.
Simply encapsulate calls to a [micro]service in a function, so it can be replaced by a local/native implementation without changing other code. And then forget about it.
What is a "service" anyway? Something that reads directory contents? Congrats, you just turned readdir(3) into something with a posh name. Or, more abstractly: If a service is something that does a service for you, you just renamed "function" - and found a topic to talk about at length without providing any actual insights.
The only environment where "microservices" provide a real benefit are big, slow companies where moving a functionality into its own service reduces overhead in terms of certification (ISO 900x et al) for the cost of requiring more computational power because you now have to traverse the IP-stack at least 4 times for each call. But ISO-certifications are hardly a problem any startup will ever have.
Am I missing something?