3) An Overview of Low Code Platforms and its applications

Bhargav Kulkarni
6 min readAug 1, 2022

Introduction

Low code platforms are systems that allows developers to work faster. These systems are evolved as digital economy evolved reinventing in different ways. Building low code applications requires developers to have abstract knowledge of such platforms as well as business objectives. Once such platforms are built, it can be used in ever changing business landscape with minimum effort. It can be used in,

  1. Single Application Context with Macroeconomic Conditions
  2. Building Complex Workflows as Business Objective
  3. Building & Deployment of Machine Learning Applications with Microeconomic conditions
  4. Building Complex Data Pipelines

There are many low code systems available. But I will share little more details in abstract way about the same. Note that, low code platforms come with friendly user interface where Business Stakeholders can directly achieve their goals without communication with any development teams. This is often termed as no code platform.

Problems

  1. It can bring Business Agility & Innovation with Platform Approach
  2. Development time is reduced significantly as business needs
  3. Building clear separation of concern for Business Stakeholders, Application Developers & Platform teams.

Design

At a high level, low code platform needs to be designed keeping in mind following subproblems

  1. Language constructs: Every low code platform needs to be built keeping in mind language constructs such as variables, maps, timers, events & execution contexts. These constructs are Just like any other high level languages such as C++, Java
  2. Tokeniser: Every language has tokeniser than enables to read language & convert them to meaningful tokens. Example of token is variable name, variable value, assignment expression, airthmetic expression
  3. Parser: Parsers are grammers of the language. How do you parse the language ? Top down vs Bottom Up parsing. Parser uses tokens to build Abstract Syntax Tree(AST)
  4. Abstract Syntax Tree(AST): AST is essentially representation of your code as a whole. It is possible to have more than more than one execution contexts hence more than one AST can be produced from single codebase.
  5. Optimised AST: This is typically your AST optimised for current CPU architecture. It optimises code as much as possible removing unnecessary conditions or optimising loops execution.
  6. Execution Context: This is typically associated with constraints of language. Language might have prebuilt context variables such as User Location. These prebuilt variables might be available only during Mobile User Login & Mobile User Logout. But when user performs some other action, User Location might not be present & language might through error.

Data Considerations

  1. Security: Security by far plays an important role because they contain Business Critical Data. Hence storage must be secure
  2. Scale: Scale of the data in low code applications is usually not too big. Because business rules associated with such system are often not big.
  3. Performance: Performance should not degrade as data scales. This can be achieved by choosing scalable nosql server such as mongoDB & Connected to Scalable Kafka server

I will explain the design using following example. Below Grammer performs basic mathematical computation.

Above Grammer will convert any supported low code into internal data representation that contains below structures.

I will illustrate this with a simple mathematical expression on a low code platform.

x = (a+b)/(c*d)

Where a, b, c, d > 0

On a typical compiled system, above mathematical expression is compiled into machine code & then executed as a separate thread of execution. It requires extra step of compiling your code & redeploying in production environment. This step is eliminated in case of low code platforms. This is advantage of low code platforms. Because you have an image of code already running as part of you platform.

Once above mathematical expression is parsed, below AST is created. This AST as shown below.

Next above constructed tree can be optimised depending on the kind of expression being parsed.

Example: If mathematical expression is like below as part of low code,

x = (10 + 20) / (3 * 1)

There is a huge potential for optimisation of above expression as shown below. it results computation of mathematical expression significantly because tree size has been reduced to greater extent.

Runtime

Runtime of low code needs input data to process the execution. Internally it can be represented as specific object structures for specific execution contexts. There will be one general execution context for general computations such as our above mathematical expression. It can be represented using JSON object structure.

{
"a": 10,
"b": 20,
"c": 3,
"d": 1
}

Note that, low code platforms can support conditional variables. If condition in any node of above tree is not true, all the subsequent child node execution is stoped and sibling nodes if any will be executed. For all the mathematical computations, by default condition is set to true.

Low code can take JSON object as input context-data & process the execution. Typical execution can happen as shown below. We can think of it as preorder traversal of n-array tree.

  1. Start with root node, in our case it is assignment expression whose job is to assign right side expression to left side expression in the tree in our case it is x.
  2. Right side Expression in level-1 is not a simple Expression, it is a complex Binary Expression. Role of any Binary Expression is to perform operation on its two operands. Recursive execution continues.
  3. In our case both operands on level-2 are also Binary Expression, so recursive execution continues to level 3. Where both nodes are Value Expressions.
  4. Context Data(In our case it is JSON object) is made available during every child node execution. When ValueExpressions are being executed, they know how to extract their values from JSON object. Hence both leaf node expressions a & b return values 10 & 20 to parent Binary Expression. This parent expression computes result by performing a known operation on both the operands & inturn returns result 30 to Parent BinaryExpression at level-1.
  5. Similar execution will be performed on right node of Binary Expression at level-1 & result of 3 will be returned to the Binary Expression at level-1.
  6. BinaryExpression at level-1 performs execution 30/3 and returns result to parent AssignmentExpression at level-0. At this level, value of 10 will be assigned to left expression x.
  7. Finally ValueExpression will contain value x as 10.
  8. This is just a high level execution. However when implemented many things needs to be considered such as thread safety, heap allocation & management, parallel execution etc.

Applications

Healthcare System

In healthcare system, there is good scope for using low code platforms especially w.r.t macroeconomic datapoints. Because as we observed from COVID itself, people were not getting affected by microeconomic conditions, instead they were largely being affected by macro-economic conditions. In such case there can be sudden increase & decrease in the price of particular resource such as ventilator. Technology Businesses need to be agile to quickly respond to such situations. It may not be ideal situation for developers to keep coding considering all the edge cases during such situations.

Apart from this, it can be also used in insurance departments. Typically insurance agreements between 2 entities can evolve. So it may not be ideal to expose such logic to the development teams.

Online Gaming

Online gaming involves multiple players who are playing games via shared internet access to servers. Often as game progresses, you want to introduce certain rewards or detect fraud or enforce advanced security. It is not good practice for developers to introduce such game rules. You may want to have separate operations team who can interact with such systems.

--

--

Bhargav Kulkarni

I’m a Software Engineer with 7+ years of industry experience.