Low-code and microservices
The microservices software architecture was developed during the 2010s as an alternative to the monolithic architecture. Almost immediately, this approach to software architecture turned out to become rather successful. Much like the low-code platforms that have surfaced during recent years.
In a series of articles, we investigate how a microservices architecture relates to low-code platforms. We ask ourselves if microservices are useful not only for the low-code platform itself but also for the users of the platform. We will base this walkthrough on the low-code platform we know best, which of course is Genus.
But first, we need to dive a little bit deeper into the characteristics of a monolithic versus a microservices architecture.
Applications built on monolithic architectures had several challenges. They were built as a single unit, and any change would require you to rebuild and deploy the application as a whole. Moreover, scaling had to be done by duplicating the whole architecture, even if only a few functionalities needed better performance.
Figure 1 illustrates this problem in a monolithic architecture. Here, the services A, B, and C are built and deployed as a unit. Consequently, if the number of users increases beyond the capacity of a single service, e.g. Service C, all services need to be duplicated to scale for the new demand.
In contrast, a microservices architecture arranges a software application’s backend as a collection of loosely coupled services. Such an architecture has the advantage of:
- Each service being small. This makes it easier to maintain for developers, since each developer has less to be concerned about.
- Each service being developed independently of other services. In effect, this increases speed of development of an application, since more developers can work in parallel.
- Each service can be scaled independently of other services at run-time. This results in a dynamic and cost-effective use of computing resources.
In figure 2, we have illustrated an application that is based on a microservices architecture. In this case, if an increase of users overloads Service C, but A and B still have free load capacity, only C would need to be duplicated. Thus, this saves a lot of resources like memory, compute, and money by avoiding the duplication of Services A and B.
Do one thing and do it well
Microservices have more advantages than listed above and nothing of course comes without its disadvantages. However, without going into details about the advantages and disadvantages, it is safe to state that microservices are a huge success and have since the early 2010s evolved into the de-facto architecture used by enterprises such as Google, Netflix, Reddit, Airbnb, and many, many more.
In short, it all boils down to the Unix principle of “Do one thing and do it well”.
Low-code and microservices
But does a microservices architecture apply to a low-code platform? And do low-code platforms lend themselves naturally to microservices?
At Genus we answer yes to these questions on two levels:
- The Genus low-code platform is itself made up of microservices.
- Business Engineers using the Genus platform can create microservices themselves.
The Genus low-code platform is itself made up of microservices
Our low-code platform consists of services like Authentication Services, Authorization Services, and Metadata Definition Services. These services interpret a customer’s specific low-code application at run-time, making the customer’s application spring to life.
In part 2 of this blog series, we will dive a little deeper into exactly how our platform is made up of a set of microservices and how they all operate in unison.
Users of the Genus platform can create microservices themselves
As a Business Engineer, which is what we call the users of a low-code platform, you don’t want your low-code applications to end up as monoliths. Therefore, the low-code platform should also enable the Business Engineer to implement the application-defined services as microservices.
The business and application logic of the low-code application is defined by mechanisms such as Modules, Agents, Queues, REST services, and Schedules in Genus. These mechanisms comprise the same set of properties that characterizes a microservice architecture. Thus, they are the enablers of microservice architecture in your application.
This will be the topic of part 3 of this blog series, where we will describe how the application level can use microservices principles when modeling with low-code.
Subscribe for more details
To summarize, understanding the concept of microservice architecture can be relevant on multiple levels of applications development. We will dive deeper into this in the next parts of this series. If you want to learn more, subscribe to our newsletter to get notified when our next blog posts are published.