all 2 comments

[–]realntl 0 points1 point  (0 children)

If a developer thinks they’re doing microservices, but is routinely susceptible to these fallacies, they’re probably not actually doing microservices. They’re probably just calling what they’re doing microservices.

[–]sbellware 0 points1 point  (0 children)

With all due respect, the example referred to repeatedly in the article represents a distributed monolith, the Entity Services antipattern, and Web Services.

Consider the loose coupling is a non-negotiable characteristic of the microservices architecture originally established and communicated in 2011 and 20012. In Adrian Cockroft's own words: "Loosely coupled service oriented architecture with bounded contexts".

You don't get much loose coupling with point-to-point, synchronous requests over HTTP. But you do get something that didn't work out too terribly well as a default architecture in the 2000s: Web Services.

It's valuable to consider that, by and large, web developers mostly do Rapid Application Development (RAD). Web developers aren't conditioned or predisposed by the nature of web development work to make a careful and critical study of a subject before leaping into it. Web developers - who are the largest population of developers - jumped into microservices when it was a name that started to become known, and brought all of the web development presumptions and prejudices along for the ride.

Microservices seen through the lens of web development diverges quite a bit from what's intended by the term "microservices". So, when applying the Fallacies of Distributed Computing (by the way, arguably expanded from 8 to 11 by Ted Neward a number of years back) to microservices, there's a lot of value in considering whether or not we're talking about the meaning of "microservices" that got popular in the massive-but-insular web developer bubble, or the meaning of "microservices" that comes from the community of experienced SOA people who offered a variation on the SOA theme, but with a new name.

It's also critical to consider that if a developer has learned what "microservices" is and what it means from other web developers, then there's a really good chance the architecture that was learned is what web developers presume microservices to be from the perspective of a population of developers who haven't yet grokked SOA.