Below are disadvantages to using [[Microservices|microservices-based architecture]]. Some of them are incorporated into [[Microservices vs Monoliths]].
### Additional operational overhead due to complexity
With microservices, the increase in the number of separate components may cause increased effort in managing and maintaining them.
### Potential for decreased availability
Microservices can get caught in a [[Retry storm]], which is a type of [[Cascading Failures|cascading failure]] where functioning microservices repeatedly attempt to send a request to a faulty microservice. Suddenly, the faulty microservice, already struggling to process the original request, must now also process the succeeding repeated requests. This behavior often leads to further degradation of the faulty microservice.
### Microservices affect SLAs dramatically
Because each microservice is a separate service, they can affect commercial [[SLAs]] more than a monolith does. Each service adds to downtime for SLA purposes, yet these failures are often [[Cascading Failures|Cascading failure|cascading]] in nature, and thus strongly influenced by failures in other microservices.
### Integration issues
Using microservices encourages silos within the team, as the [[Separation of Concerns]] applies to the structure of the development team as well. A microservices-based architecture facilitates specialization, which has its benefits but also leads to each developer being less updated about the system as a whole. This attitude can increase the number of defects related to connections and communication lines between the microservices.
[[Nočnica Fee]] described integration issues in microservices as the [[Tower of Babel]]. [^techstrong]
### System-wide failures require more effort to fix
If a failure in one of the microservices is found, the microservices approach makes it easier to fix it. However, if a failure at the system or application level is found, the fact that all or many of the microservices are affected makes it more difficult to fix. If a release that touched many microservices must be rolled back in production, for example, each affected microservice must also be rolled back. [^invision]
### Microservices can cost more if it's not done right
Using microservices and the fact that each one _can_ be scaled independently can lead to higher bottom-line costs as the tendency to over-scale them is greater. [^invision] If a microservices-based architecture is chosen, having the microservices expertise on the team is essential for making sure the selling points of microservices don't become their downfall.
### Increased difficulty in troubleshooting
Compared to [[Monolith]]s, which allow the attachment of debuggers and whose outputs can be clearly traced to the responsible component, microservices are more difficult to troubleshoot. The distributed nature of microservices means that troubleshooting must also be distributed. Thus, [[Distributed tracing]] is often necessary when adopting a microservices-oriented infrastructure.
[^invision]: Nadel, B. (2018). _Why I've been merging microservices back into the monolith at InVision_. Retrieved from [https://www.bennadel.com/blog/3944-why-ive-been-merging-microservices-back-into-the-monolith-at-invision.htm](https://www.bennadel.com/blog/3944-why-ive-been-merging-microservices-back-into-the-monolith-at-invision.htm). [[Why I've Been Merging Microservices Back Into the Monolith at InVision]]
[^techstrong]: Fee, N. (2020). _Staying together by breaking apart: How DevOps can thrive in a world of social distancing and serverless._ TechStrong Con 2020. Retrieved from https://digitalanarchist.com/videos/techstrong-con-virtual-summit/nocnica-fee-stay-together-by-breaking-apart-how-devops-can-thrive-in-a-world-of-social-distancing-serverless
[^simme]: Aronsson, S. (2021). _Intro to distributed tracing with Tempo, OpenTelemetry, and Grafana Cloud._ Retrieved from https://grafana.com/blog/2021/09/23/intro-to-distributed-tracing-with-tempo-opentelemetry-and-grafana-cloud . [[Intro to Distributed Tracing With Tempo, OpenTelemetry, and Grafana Cloud|My highlights]].