If you’re in software development, you need to know the different kinds of software architecture available. This blog post outlines the five major types. Read on to learn more.

Layered

Layered software architecture is one of the most well-established structures around which an application can be developed. The ‘core’ of the software is usually a database, with ‘service layers’ influencing data coming in or out of that database in order to provide functionality. This kind of architecture is simple but can lead to complications. Because software built around layered architecture is intrinsically monolithic, it can be completely compromised if even one area has vulnerabilities. Full stack code editing also needs to take place if any of the functions within the software have to be changed. The more complex the functionality of the software, the more layers it will have – leading to more possible problems.

Microservice

Microservice architecture is built around a completely different premise. Instead of ‘baking in’ functions to a single monolithic program, microservices adoption involves the creation of many different individual programs that serve to create a functional network of features. In theory, this means that new features can be easily added as microservices to an existing architecture. Companies like Netflix pioneered the large-scale use of microservices. Full stack updates and edits are rarely needed in a microservice architecture, as new services can be developed and edited free from their impact on the overall program.

Microkernel

Microkernel architecture is a bit like a combination of layered and microservice architecture. A program will have a ‘core’ set of functions that are completed using a layered architecture. Any additional features can be added using plug-ins. This enables developers to have a bit more freedom when it comes to adding features to their software but retains the simplicity of a core layered architectural approach in many ways. While it has the benefits of layered architecture and a few of the benefits of microservices, microkernel developed software does also share some of the vulnerabilities of a layered architecture – namely, the interdependence of all the core functions.

Event Driven

In a layered architecture, all data passes through all layers – even if those layers have no impact on the kind of data that is being passed through. This creates a great deal of background processing that can make software unnecessarily taxing for hardware on computers and within networks. Event-driven architecture aims to counteract this. All data passes through a layer that identifies the kind of information it is receiving and categorizes it. If that data is categorized in a way that is only useful for one layer, then an ‘event’ is created, and that data is sent to the specific layer that handles that kind of data.

Space Based

Software and websites that operate using a central database work well when they are being used within their parameters but can slow down drastically if that database is flooded with requests or otherwise rendered dysfunctional. Space based architecture involves the splitting of databases between servers – often using cloud technology to facilitate the connection of a piece of software to remote servers securely.