These days "full stack" is a buzz phrase.

I got curious about the phrase when I found it to be mostly used to define a developer. People rarely spoke or wrote about its architecture.

Further research revealed that the architecture had nothing disruptive about it. The term just denotes everything that lies between the browser at client and the disc on the server. The expanse of virtual space that lies between the two is complex and highly heterogeneous.
For a single developer to master all the technologies mentioned above is a tall order. I will shortly explain why.

HTML is a markup language which deals with a rarely used data structure called "tree". At times, it is weird, too. You put angular brackets at strategic places in plain text to render it into colorful, rich-text on screen.

I am sure there can be better ways of implementing the same.

JavaScript has long ceased to be a side-kick of HTML - a mere event handler. Even though still restricted to the browser, it has got some niche features. Duck typing has not only made programming a lot easier, it has also made JSON possible. Multithreaded programming in JavaScript is implemented through call-backs. That very feature makes contemporary web pages so much responsive and fast.

Client-side JavaScript libraries are a phenomenon to be taken seriously, even though it is an instance of the tail wagging the dog. When libraries take control of things instead of assisting the primary language from the side, you label it either an apocalypse or a paradigm shift.

Per Wikipedia, the total number of JavaScript libraries available today is 98! Rumour is rife that major IT and software giants are planning to come together to sign a JavaScript Framework Non-Proliferation Treaty, similar to the original NPT (The Treaty on the Non-Proliferation of Nuclear Weapons) which was signed in 1968.

Anyone trying to master full stack development should have a good idea of HTTP, the backbone of Internet. Even though most of the times we only use three HTTP verbs - GET, PUT and POST - the devil lies in the details. There are quite a few HTTP header attributes one has to be aware of.

These days, the de facto version of HTTP is HTTPS. HTTP header requires some specific security attributes, like cross-site scripting etc, to be setup correctly. This is where you see the first crack in the monolithic "full stack". Even though a logical part of the block, security is kept out of the ambit of a full stack developer. His role is to observe the setup process and gather enough knowledge to troubleshoot future browser handshake failures. Also, some client machines may require manual certificate installation.

As you move towards the application server / database server side, things get heated. You get to see the big things like microservices, OOP, ORM and, of course, the database.

The story begins in the browser. As soon as an HTML page starts loading the control goes to the underlying JavaScript Framework. It renders the page and simultaneously collects remote data to make it complete.

Remote data is of two types: static and dynamic. The former comprises images, music files and videos. The latter comes from REST API calls.

Each REST endpoint may be imagined being a JSON data stream, which derive data from the databse. The fact, amply illustrated above, that one has to literally struggle to show what is stored in a database to a user, proves that we have finally achieved 100% data encapsulation.

Well, data encapsulation was an 80's dream. And my statement was, of course, a joke!