Re:The Death of Microservice Madness in 2018
by romaniv on Monday January 22, 2018 @01:37PM
(#16206697)
>Can we extend that logic to classes or interfaces?
This was one of the main ideas behind the original definition of OOP. The original notion of "object" was very similar to our current notion of "service":
https://www.youtube.com/watch?v=QjJaFG63Hlo
Objects received messages, including messages sent over the network. There was not supposed to be a clear distinction between local and remote services - by design. A lot of inter-computer stuff could be/was handled transparently.
Can we extend that logic to classes or interfaces? Accessing data operations through a well-established API is generally seen as a good thing and is the exact cure for spaghetti...
Service APIs also entail load balancing and decoupled deployments, so they eliminate unclear architecture that arises at the app level when trying to tune the whole for individual components. Particularly when a shared component exist across multiple systems.
For a generalized microservices architecture: layering is a bit of a misnomer as everything is loosely in the same 'service' layer... I'd also point out that in N-tiered applications application services or domain services calling other services at the same layer is seen as the solely approved channel for re-use, not an anti-pattern.