Microservice for dummies

Jair Verçosa
3 min readDec 25, 2017

Microservices are one of the most famous topics in software engineering today. The simplest way to understand a microservice is that it is an application that does only one thing, and does it really well.

To explain how powerful it is, I want to use the F1’s pitstop example.

At the golden age of F1, the pitstops were slow. I don’t know exactly how long it used to take but because they didn’t have too many people, I’m pretty sure that it wasn’t as fast as it is today.

The other problem was that each member of the staff needed to have knowledge about everything such as how to fill up the gas tank, how to switch tires, and how to fix parts of the car.

That means that the individual job was very complex and involved many different disciplines.

It is very hard to scale scenarios like this, especially because to do so, you will need to add more people and teach all tasks to everyone. Not an easy job.

In the modern F1’s pitstop things are very different!

You have one person for each individual task. That person is doing only one thing and doing it really, really well.

Thus, you reduce the complexity of the task that each person has to care about. Also, it becomes easier to scale. If you have one person who knows how to switch the tires, but you need to be able to switch 4 tires at the same time, all you have to do is to scale that single task and having more people doing it. You train them in only one thing and replicate the work.

If by seeing the number of people you have in the today’s pitstop for F1, you think that the complexity actually increased, you just figured out the biggest trade-off of implementing microservices.

Yes, it increases the complexity from the point of view of having multiple workers but reduces the complexity of each task. Orchestrating the entire process becomes a bit harder but you take advantage of the robustness of each worker. The fastest F1’s pitstop took 1.98 seconds.

In the microservice world, each person is a service. Each service is an application focused on only one thing and isolated from the others.

It could be an email sender, a pusher for notifications, a service to calculate taxes or an application that adds a filter on a photo.

It is very powerful and gives you the ability to scale problems individually. Without mentioning that you can fix issues faster without affecting the other workers.

On top of that, it helps to reduce the number of errors and bugs since you’ve defined better the boundaries for each worker. More efficiency and performance all together in the same package.

Making the decision to move to microservice architecture is not for all companies. Be conscious about the trade-offs and know that microservices are not the solution for all products. Don’t get distracted by all the blog posts that you see on the internet.

Did you like the content? Feel free to buy me a coffee!

If your company already made this decision, here’s a good article for you to show to your engineering team! I’m pretty sure they will enjoy it!

--

--

Jair Verçosa

CTO @ Flieber, Mentor @ Latitud, and Tech advisor. Building the next generation of supply-chain automation and helping companies to master the zero to one game!