Bad performance is the most striking problem affecting end users. The current audience of application users expects responsive, high-performance business apps with sub-second response times, regardless of how the application is delivered. It is very important that low-code and no-code platforms address this issue while keeping the benefits of efficient application delivery.
It is a common misconception that low-code and no-code platforms, with their high-level tools and concepts, create applications that are slow, with no way to optimize because of the layers which are above the actual data access and processing. This can be true for some platforms but there are ways to solve these issues and keep the benefits of low-code and no-code.
High level optimized, ‘prescriptive’ components
Modern low-code platforms have opinionated, prescriptive components all designed and architected to work seamlessly and efficiently together. Prescriptive components give you an ‘opinion’ of how a problem is solved, and how a UI component works best. In other words, prescribing an optimal solution. These components can be high-level ‘business ready’ items which provide meaningful functionality for a business user. They can be developed so that their interaction with the user and the data is highly optimized, e.g. a dynamic form could request lots of information from the database to respond to user interaction. An optimized dynamic form component can collect user events, prioritize them, and process and communicate with the database in a very efficient way. Because the component (the dynamic form in this example) is standard, and communication in the background can be optimized, the low-code developer doesn’t have to worry about it, and can produce a responsive, data-efficient application with ease.
The ‘To the metal’ approach
‘To the metal’ is a term used in programming, which means allowing direct access to a resource. A few select low-code platforms allow direct access, meaning that while keeping the benefits of low-code, they also allow the developer to do further optimization, if necessary, in complex core systems which may require it. A typical example of this is how low-code platforms manage data. Almost all low-code platforms have an underlying database which stores data , and might contain data transformation and business logic procedures. Two fundamental approaches to managing data are to:
- Hide the actual database and provide a higher-level data-model tool.
- Give direct access to the database and make the platform handle the data scheme in a more flexible way.
Both approaches have benefits for the direct access approach, with the second being better. By allowing full access, a custom approach can be used to build optimal, high-performance databases for complex core systems, and third-party tools can also be used for optimization. For teams building complex core systems, this gives the peace of mind that they will not hit a wall, but can build highly performant complex systems, and optimize them as necessary with the tool of their choice.
System performance issues are addressed at the architecture level. ‘Opinionated’ elements are selected and engineered into the platform with regard to performance.
In a well-designed low-code platform the ‘low-code’ and ‘no-code’ elements do not affect overall system performance, as performance is established in the low-code architecture and system components. If the complexity of the project requires it, some low-code platforms provide ‘To the metal’ access to open up the possibility for specific optimization.
Low-code and no-code platforms can actually help to achieve good performance by implementing high-performance architecture behind the scenes within the platform engine. Performance is not affected by the custom business logic and UI created by low-code, and no-code tools.