Why microservices are stupid

hot tyks

Hot Tyks is a new series where we dive into hot topics with varying levels of spicy takes from some of our passionate Tyklings. This ongoing series will include some epic supporting video content, so watch this space for more!

If you like your spice xtra hot, this one’s for you.

Now you’ve been warned, let’s get started…

Ok, so hear me out.

Microservices are touted as the architecture to beat when building your digital product. You can scarcely read an article or attend a conference without running into them. An application architecture where apps are developed as a collection of services, they are hailed as the best way for organisations to organise their technology stack. 

Let’s see the benefits:

  • They are easy to scale because they scale independently
  • They are easy to develop because they encapsulate scope
  • They are more observable because they communicate over the network
  • They can be rolled back or forward easily, should something go wrong.

There are a host of other perceived benefits, but I’ll tell you now: they are bollocks.

Microservices are a Pain. In. The. Arse.

Let’s break down those benefits one by one, shall we?

1. Easy to scale because they scale independently

Bollocks: They might scale independently, but most microservice architectures eventually have system-to-system calls. This means one service scaling will cause others to scale, which ultimately means you are spending more per cycle to get the same performance as a moderately scaled monolith.

2. Easy to develop because they encapsulate scope

Remember how I said there are service-to-service calls? That’s called dependency. How the heck does that encapsulate scope? Maybe, if you embrace the actor model, you could get away with it, but you chose microservices, you absolute piece of toast. Now, you have complex dependencies between services managed by different teams. 

What were you thinking?

3. More observable because they communicate over the network

Oh yes, let’s add an observability service to the mix! Yes, the way to observe your application is to actively SNIFF THE TRAFFIC. Why was this ever considered sane? 

What hallucinogens were they smoking when they thought actively hacking your network was a good idea? Oh wait – best practice dictates zero-trust and encrypted S2S calls.

Where is your god now!?

4. They can be rolled back or forward easily 

No, they can’t, if you change the contract between any dependent services, they are ultimately coupled, and very few services exist in pure isolation. 

Or maybe they do, but it’s unlikely you built it that way. 

Go away now.