What is backend software?
In software development, we often use terminology that makes sense to us but doesn’t have much meaning to anyone in other fields. A name that often elicits quizzical looks is the term “backend.”
You are probably most familiar with interacting with the “frontend” or presentation layer in software. Frontend technology generally enables what you see daily interacting with websites, mobile apps, and any other software interface.
What are backend services, and why should you care? Backends are the invisible elements that power software applications. The backend is a data access layer that powers the presentation layer (frontend).
Back-End Services
Let’s break down what a backend is in less technical terms that most people will understand.
APIs
When you are using the frontend of a software system, that frontend is accessing one or more Application Programming Interfaces (APIs). APIs allow different applications to communicate with each other in a structured way.
How does an API work? Let’s use an analogy of eating at a typical restaurant.
The host in the dining area, the dining settings, menus, and decor in a restaurant are equivalent to the frontend systems in software.
A waiter acts as a messenger between you and the kitchen. You give the waiter your order, and the waiter gives your order to the kitchen in a format they understand. The kitchen prepares your food, and your waiter delivers the food to your table. In this example, the waiter is a lot like an API in a software system.
Applications
Backend applications contain logic to process operations within a software system. When a frontend makes a call to an API, there are usually applications performing logic behind-the-scenes to form the response. Applications often contain business logic for how the system should process requests and what should happen when certain conditions apply.
In our restaurant example, the kitchen staff creating the dish you ordered is a lot like an application. You don’t need to know how to make the dish, nor does the waiter. The kitchen has the necessary knowledge to get the right ingredients and prepare them with the proper methods to create the meal you requested.
Databases
Databases store information used in a software system. In our restaurant analogy, databases could be the freezers and refrigerators where food is stored and the room-temperature storage where other ingredients and equipment are kept.
For example: If you order a cheeseburger, the waiter tells the kitchen staff about your order. The kitchen staff visits refrigerators to get the hamburger patty, cheese, and toppings. They access other storage to retrieve the burger buns and condiments.
Much like kitchen staff in a restaurant, applications in a software system access databases (like the storage locations in our kitchen) to perform their functions.
Servers
Servers are where the backend systems are living. In our restaurant example, a server is the restaurant building.
In software, servers may consist of physical servers at a business’s location. More often than not, cloud services are used. Examples of cloud services include Amazon Web Services (AWS), Microsoft Azure, Google Cloud, and many more.
Cloud services often offer additional security and scalability options and the storage of backend systems’ APIs, applications, and databases.
Many cloud service offerings include added security, compliance, and scaling options.
Some cloud service analogies in the restaurant example include:
- Security: The restaurant’s physical security such as barriers, locks, alarms, and monitored-access to sensitive areas
- Compliance: The restaurant’s policies for food handling regulations
- Scaling: If the restaurant is full, patrons wait in a line managed by a host to be greeted and seated
Making Sense of It All
Now that we have explained how backend services work, it may help visualize how they contribute to software systems. Depending on architectural decisions, it is often true that 20% of the effort of software engineering is in the frontend, while 80% is on the backend.
The backend often serves as the engine that powers the entire system.
What are the best options for setting up backend systems? We will explore standard solutions in our next post!