Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

What You Gain and Lose With Microservices

DZone's Guide to

What You Gain and Lose With Microservices

A response to "In Defense of Monoliths" between two posts that aim to define Microservices and what you gain and lose with Microservices.

· Integration Zone ·
Free Resource

The Future of Enterprise Integration: Learn how organizations are re-architecting their integration strategy with data-driven app integration for true digital transformation.

I work in an IT department where we have many of the problems that microservices are supposed to solve. But we've been careful in trying to apply microservices. We have realized there are tradeoffs to consider that are often not discussed.

I recently wrote a blog post titled Microservices Beyond the Hype: What You Gain and What You Lose where I summarized the pros and cons of the new IT popstar, Mr. Microservice. An interesting consideration is that if you break a monolith into microservices, ceteris paribus the runtime autonomy of the solution will be negatively affected. But aren't microservices supposed to be autonomous? Well, the truth is that we need to employ techniques to improve autonomy in a microservices-based solution exactly to prevent autonomy issues inherent to microservices, as explained in the post.

You may look at the lists of pros or cons and disagree with one or another point. One reason for disagreement is that different people have characterized microservices in many different ways. Unfortunately we didn't have an objective, widely accepted definition from the beginning, and we still don't have one. In another blog post, I took a crack at Defining Microservices, not by introducing a new definition, but by sticking to the basics.  

Make your mark on the industry’s leading annual report. Fill out the State of API Integration 2019 Survey and receive $25 to the Cloud Elements store.

Topics:
microservices ,soa

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}