To help you understand why it’s essential to have the right layers in your technology stack, this page will cover:
- Where do tech stacks come from?
- Technology stack layers
- What are the different tech stacks?
- Couchbase technology stacks
A technology stack (tech stack) allows you to combine software, tools, and services to build a web or mobile application. Each layer of a typical tech stack is responsible for a separate type of task, either presentation, application logic, or persistence.
Where do tech stacks come from?
The concept of a technology stack has been around since the early days of the web. The earliest webpages were simple “static content.” To retrieve content, webpages used a rudimentary method of calling an external program called Common Gateway Interface (CGI). A CGI script would allow the web server to execute a program to process user requests. Many of these early programs were handcrafted in the C programming language.
Almost immediately, early web developers began experimenting with better frameworks and abstractions for building web software. Perl emerged as a more straightforward and accessible language for writing this code. But it wasn’t quite a tech stack yet.
After more innovation and evolution, various technology stacks began to emerge. Rather than writing out HTML by hand, libraries and page templating frameworks for the presentation layer logic started to become common while the rest of the program was free-form. Things like relational databases provided a clear way to manage and express data access for app developers, so the persistence layer and concepts like connection pools emerged.
Technology stack layers
People use different names for the same stack layers, so for our purposes we’ll simply refer to them as the top layer, middle layer, and lowest layer. What’s more important is the task each layer is responsible for, and we’ll review those responsibilities from top to bottom.
Technology stack top layer: Presentation
The presentation layer of a tech stack is where formatting and localization occur. For example, a website may have one logo and set of colors, but as styles change, you might want to change the look and feel. Another example of the presentation layer at work is personalization. If a browser request comes from a country where the users want temperatures presented in Celsius instead of Fahrenheit, the information provided will be different.
Technology stack middle layer: Application logic
Application logic goes in the middle layer of your tech stack. For example, the web browser request may include a location (e.g., Austin, Texas) and time zone (Central) that the application logic needs to resolve into the right database query.
The middle layer may be spread out using a microservices-based architecture, which allows various application parts to be implemented independently through well-described service interfaces.
Technology stack lowest layer: Persistence (or database)
The persistence layer is typically the lowest layer of the stack, and can be as simple as a set of files in a file system. Managing data in a basic file system, however, requires a developer to develop ways to index and access the data themself – a daunting task.
Instead, most developers choose a database. Originally, the go-to database was a relational database because they were the most common. Over time, however, NoSQL databases have become another popular option for developers because of NoSQL’s flexibility, scalability, and broader capabilities.
What are the different tech stacks?
The LAMP stack (made up of Linux, Apache, MySQL, and PHP) became one of the first popular stacks. Linux became the most frequently used operating system; Apache, the most frequently used web server; MySQL, the most frequently used database; and PHP, the most frequently used page templating and programming language.
Tech stack examples
The following list is just an example of how diverse and interoperable technology stacks can be:
Windows OS, IIS web server, MySQL database, and PHP app layer
Mac OS, Apache web server, MySQL database, and PHP app layer
FreeBSD OS, Apache web server, MySQL database, and PHP app layer
Linux OS, Apache web server, PostgreSQL database, and PHP app layer
Linux OS, NGINX web server, MySQL database, and PHP app layer
MongoDB database, Express.js app controller, Angular.js app presentation, and Node.js
Linux OS, Yaws web server, Mnesia database, and Erlang app layer
Linux OS, Yaws web server, CouchDB database, and Erlang app layer
Elasticsearch search/statistic aggregator, Logstash logging retrieval, Kibana graphical presentation
Couchbase technology stacks
As a cloud database platform, Couchbase plays a critical role in technology stacks. Because it integrates a set of data access and management capabilities commonly required by app developers, Couchbase makes it easier to scale and grow.
The CEAN stack
This stack uses Couchbase, Express, Angular.js, and Node.js. It’s similar to the MEAN stack but uses Couchbase as the database instead. CEAN even has a community-driven project scaffolding tool.
The COdE stack
This stack uses Couchbase for the database, Ottoman.js for the object document mapper (software that makes it easier to map programming structures into databases), and Express.js for app routing.
It may be helpful for you to think about abstracting the app or service you’re building for your users as a tech stack. This is a good way to carefully consider each of the individual components – and more importantly, by thinking of the responsibilities of each layer separately, you’ll be able to build a more flexible system architecture with components that are more interchangeable.