Layered Monolithic Software Architecture

Archit Chauhan
2 min readJan 4, 2023

--

In software engineering, a layered architecture is a way of organizing the components of a software system into distinct layers, each of which performs a specific task or set of tasks.

Each layer communicates with the layers above and below it, but is isolated from other layers. This means that each layer only communicates with the layer immediately above or below it, rather than with any other layer in the system.

The main advantage of using a layered architecture is that it makes it easier to develop, maintain, and modify the software. Since each layer is responsible for a specific set of tasks, it is easier to understand how the system works and to make changes to it. Additionally, if a problem occurs in one layer, it is easier to identify and fix the issue, because it is isolated from the other layers.

In a layered architecture, it is important for the layers to be “open” to change and “closed” to modification.

An open layer is one that is flexible and can be easily modified or extended. This means that the layer should be designed in such a way that it can accommodate changes to the functionality it provides without requiring significant rework.

On the other hand, a closed layer is one that is stable and not intended to be modified. A closed layer should not depend on the details of how other layers are implemented, as this would make it difficult to change those layers without affecting the closed layer.

By following these principles, a layered architecture can be more maintainable and easier to modify over time.

Here is an example of a layered architecture in a simple web application:

  1. Presentation layer: This is the topmost layer and is responsible for displaying the user interface to the user. It might include HTML, CSS, and JavaScript files that define the look and feel of the application.
  2. Application logic layer: This layer contains the business logic of the application, such as code that retrieves data from a database or performs calculations.
  3. Data access layer: This layer is responsible for interacting with the database and retrieving or storing data. It might include SQL statements and code to connect to the database.

In this example, the presentation layer is open to change because it is relatively easy to modify the HTML, CSS, and JavaScript files without affecting the rest of the application. The application logic and data access layers are closed to modification because they should not depend on the details of how the presentation layer is implemented.

The presentation layer communicates with the application logic layer to retrieve data and perform calculations, and the application logic layer communicates with the data access layer to retrieve and store data in the database.

Each layer is isolated from the other layers, meaning that they only communicate with the layer immediately above or below them.

--

--