lutzhank (61) [Avatar] Offline
Hello Chris,

I would be interested in learning more about resolving all kinds of dependency cycles, Not just on design level (resolvable by DIP), but also on the component and especially on service level (cycle between large business components), with the goal to reach a maintainable architecture again.

Would Microservices qualify as measure to disentangle coupled services?

Are you planning to address this subject?

Kind Regards,

Lutz Hankewitz
chris.birchall (13) [Avatar] Offline
Re: Serivce Dependencies and removal of cycles
Hi Lutz,

Thanks for the feedback!

I hadn't given much thought to dependency cycles specifically, but in the chapter on re-architecting I am planning a section on "spaghetti services", e.g. services that communicate with each other using over-specific point-to-point APIs. I could certainly address the subject there.

Microservices are certainly one way to tackle the problem, but they also come with their own downsides. While microservices are fashionable these days, and they do provide benefits such as allowing teams to be more autonomous and iterate faster, they are not an architectural panacea. For example,

* unless they're done well, microservices can result in unacceptably high latency for the end user
* controlling the versioning of each service's API can be very hard work, especially if you (knowingly or accidentally) introduce a breaking change to an API
* the operations cost of keeping dozens of services running 24/7 shouldn't be underestimated

All in all, this is a fascinating subject. There are still a lot of unsolved problems in the world of microservices, so I can't pretend to have all the answers, but I'll try to fit a discussion of the subject into the book somewhere.

lutzhank (61) [Avatar] Offline
Re: Serivce Dependencies and removal of cycles
Hi Chris,

thanks for the reply. The section about "spaghetti services" in the book sounds promising.

Thanks also for your thoughts about microservices, an interesting subject indeed.

Looking forward to read about Re-architecting.