Think You Need Microservices? Think Again
By: Allan Wintersieck
Tags: Microservices, Software Architecture, Software Engineering, Cto

Microservices have been everywhere for the past few years. YouTube is using them. Facebook is using them.

But should you use them?

Spoiler alert: Microservices probably isn’t the best solution for your cloud architecture. In this article, we’ll explain why.

Let’s start with the basics.

What Are Microservices?

The two most popular paradigms are monolithic architectures or microservice architectures.

For years, a monolithic architecture has been a dependable way to compose systems. These systems have multiple components all under the same service. They leverage internal libraries and don’t require much network activity.

The other, newer, sexier option is microservices. Rather than a single service, microservices have many components, each with its own specific process. Each component has distinct lines of responsibility and is separated from one another.

Here’s an example:

When you log into your email, a few things must happen.

You visit a webpage You submit your login and password Your device connects to a database A server grants your access A new webpage loads with your email interface

In a microservice architecture, each of these steps would be contained within their own process. In order to complete the full task (logging you into your email), each of these components much communication over the wire. This breaks up your environment into tiny pieces of information and requires multiple connections to function.

Why Are Microservices So Popular?

We hate to see it.

It’s because the big boys are doing it.

We often hear things like,

“Microservices is scalable! I want to scale.”

“Microservices is reliable! I need reliability.”

“YouTube is using microservices and they are soooo cool!”

Tech giants like Facebook and YouTube are using this architecture because they’re operating at a scale larger than 99% of companies that exist.

They need a system that can process 6,000 user requests per second. They have two billion users.

But Here’s The Problem

Simply stated: Microservices are over-hyped.

The fact is that most software architectures won’t ever be difficult or complex enough to require microservices.

Most companies (read: your company) can handle a simple architecture. Rather than breaking out systems, you can copy systems.

Here’s What You Should Do

We repeat: Your niche software application probably doesn’t need the same architecture as YouTube.

However, like all things, it depends on your unique use case.

While you’re the subject matter expert of your domain, don’t underestimate the power and simplicity of a well-maintained monolith. Once you start using microservices, you put yourself into a design paradigm that you can’t easily get out of.

If your application requires certain functionality that isn’t easily internalized, such as NLP or a machine learning process, you would be a good candidate for separate service, while still maintaining the sanctity of a monolith application.

Overall, well designed monolithic architectures are simpler and easier to maintain. And when it comes to architecture, the simpler the better.