Jeremy W. Sherman

stay a while, and listen

Microservices vs Distributed Objects

Distributed objects died out eventually; you can’t really hide the network layer without changing your system design to match. Here’s a Cocoa take. And here’s a Martin Fowler take found via the article below, with a sidebar suggesting a remote façade (to provide a coarse API as a remote endpoint) and data transfer objects (to provide coarse data transfer also as a way around slow remote communication times).

So, if DO sucks, why are microservices any different?

Enter Phil Calçado’s Microservices and the First Law of Distributed Objects:

Objects are not a good unit of distribution. They are too small and chatty to be good network citizens. Services, on the other hand, are meant to be more coarse-grained.

Group terms by affinity; grab out your connected components; now you have bounded contexts. Make those your services.

Early on, not worth the trouble - monoliths make sense. At huge scale, performance considerations (not going down) dwarf maintenance. In the middle, though, this rule of thumb ain’t bad.

Found via Devops Weekly.