Published on

Software Architecture Patterns 4 minute read

Authors

A microservice should have a single responsibility. Those services are deployed separately and once they are deployed they can run separately, asynchronously, on different machines.

In case of microservices architecture, the main idea is to scale your applications separately and independently of each other. But we have to keep in mind that if one of your services should be unavailable, the others can still work.

The real challenge is how to scale your services without affecting their performance. And this is where things get tricky.

If we go back to the example, the service that processes the data for our users, as we all know, is one of the most important services for any app.

If the service is down for any reason, the whole app will stop working.

It is important to understand that the service’s in-memory data will be persisted to a database, and the data will be replicated from one service to another.

The point is that we have to make sure the replicated data is available in case of a failure.

This is where the space-based architecture comes into play.

The idea behind the space-based architecture is to separate the application into processing units (that can automatically scale up and down based on demand), where the data will be replicated and processed between those units without any persistence to the central database (though there will be local storages for the occasion of system failures).

The main idea is to separate the application into processing units (that can automatically scale up and down based on demand), where the data will be replicated and processed between those units without any persistence to the central database (though there will be local storages for the occasion of system failures).

Space-based architecture, in my opinion, is one of the most interesting architecture patterns, because it is a very flexible architecture pattern that can be used in many different situations.

What you need to know about the Space-Based Architecture pattern?

First of all, the Space-Based architecture pattern is one of the most popular architecture patterns that has been created in the field of distributed computing. It is used in many real-life applications and is continuously evolving.

But why should you learn about the Space-Based architecture pattern?

If you are a software engineer, you should know about the Space-Based architecture pattern, because it is a very powerful pattern that can be used to scale your applications in case of both system failures and load growth.

Since the Space-Based architecture pattern is one of the most advanced architecture patterns, it is always a good idea to learn about it.

Read the Space-Based architecture tutorial, read the Space-Based architecture description and get to know the main idea behind the pattern.

If you are interested in further reading, try the list of books where you can find Space-Based architecture pattern:

If you want to learn more about the Space-Based architecture, you can read my article:

Here are a couple of examples of the Space-Based architecture pattern.

The Airline reservation system

The idea is to scale the application by adding more servers where the data will be replicated and processed between those units without any persistence to the central database (though there will be local storages for the occasion of system failures).

The main purpose of the Space-Based architecture is to make sure the replicated data is available in case of a failure.

The Space-Based architecture pattern can be seen in the following two examples:

The Airline reservation system

The Space-Based architecture in the Airline reservation system helps the airline to scale its reservation system by adding more servers where the data will be replicated and processed between those units without any persistence to the central database (though there will be local"