> For the complete documentation index, see [llms.txt](https://book.restfulnode.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.restfulnode.com/part-2/chapter-4/3-microservices-and-distributed-computing-a-popular-misdirection.md).

# Microservices and Distributed Computing: A Popular Misdirection

When you go to a tech conference, you'll likely come across topics related to [distributed systems](https://en.wikipedia.org/wiki/Distributed_computing). In fact if you were to type "distributed architecture" into YouTube, would find a plethora of conference video recordings with hundreds and thousands of views.

![](https://lh4.googleusercontent.com/PvkfQqu8XtCyCejBNxYEeUMEVMXUPdJfbiDO5Znkmwu8jMkNYgZoDOSy2BPHCTolcheNE6kvhuK3KPfjRR1EdTPghb5PdXIJZl0xljiVsZY3SLAh09zuWoSflIzo2ffjBAhwScRv)

What about if you tried typing in "layered architecture"? First, there would be less people talking about it in live conferences. Second, you would see a significantly less number of views on those videos. Third, nobody would type that in since it's so old and boring.

![](https://lh6.googleusercontent.com/ZYmAlEnJPUUxXxr-3273KWECoz2Cie1rHv8oZmarcwO2gAe4D72vg1W4xMM_K1DxQbPi-6lAe4fdXko9b_X9wgcsfB1jt8QnUiYOiawwBJQhrA8AquXOms8O_sfPu1sQBwjbSuIy)

But wait… why is this the case, even though layered/n-tier architecture is indeed the more common architecture. In fact, we can agree that layered architecture is most likely more "popular" than any other architectural pattern. Almost all projects use the layered architecture in their application structure. As mentioned before, the most popular frameworks like Rails, Spring, ASP.net MVC, Laravel are all MVC and layered-based.

The problem is that microservices has been the most talked about topic of the previous decade. It is *the* hot topic, *the* shiny new object, and *the* buzzword in the past 10 or so years.

You want to know why? Here's why.

Big tech companies like Amazon, Google, Netflix, Uber, Facebook, and Snapchat host large conferences are all talking about it. Amazon is talking about how they created their own cloud solution to scale their own internal systems to millions of transactions per day. Netflix is talking about how they scale their microservices architecture so that millions of people can stream video without delay also sounds really interesting. And who can forget Google, the granddaddy of them all. Google is talking about things such as [MapReduce](https://en.wikipedia.org/wiki/MapReduce) and [Big Data](https://en.wikipedia.org/wiki/Big_data) and how they scale to billions of users with 0 downtime. All those mentioned are really exciting and enticing to the public.

It also is interesting that these companies, who talk about these topics, also expect their future employees to know about them as well. In fact, all of these FAANG companies and their interview processes' involve a "Systems Design" portion. What is this "Systems Design" part of the interview about? It's about concepts such as: load balancers, caching, data partitioning indexes, redundancy, and replication. Notice how all these concepts are all about distributed systems and how to scale a system up.

On the other hand, If you hear someone's talk about MVC or layered architecture at a conference, people are going to fall asleep, even though it is clear that layered architecture is what is important for structuring scalable and maintainable code. Distributed systems and microservices often get mixed up with RESTful services, which in turn misdirects people's attention to something that is utterly unrelated to actual code architecture.

Therefore as JavaScript developers, we must not focus on the hot topic of the week and the trendy new technologies (I know it's hard). We have to go back to the "old school" ways of doing things and read some of the more classic books from the object-oriented world and bring those ideas into our own community.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://book.restfulnode.com/part-2/chapter-4/3-microservices-and-distributed-computing-a-popular-misdirection.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
