Low-code vs Pro-code, On-Premises vs Cloud: Business application development landscape

This articles looks at Low-code (graphical methods) and pro-code (programming based) development approaches and their challenges in building production-grade business applications. It also introduces Choreo, which is a platform that provides best of both approaches with necessary eco-system to build applications.

Chathura Ekanayake
6 min readNov 29, 2021

Pro-code

Programming languages (e.g. Java, C#, Go, C/C++, Javascript) can be used to develop business applications from scratch. This offers a great flexibility as any functionality can be programmed. However, developers have to build all other aspects required for business apps such as security, observability, high availability mechanisms, etc, in addition to the actual business logic.

Many libraries and frameworks have been introduced in order to take away some of these common tasks from business application developers. These range from libraries for JSON/XML processing, logging, supporting network protocols, data persistence, etc to frameworks (e.g. Spring, Java EE) for covering multiple aspects of app development.

In addition, there are separate products that can provides some of the above functionalities. These include monitoring/tracing systems (e.g. ELK, Prometheus, Jaeger), Identity and Access Management (IAM) systems (e.g. Forgerock, Okta, WSO2 Identity Server), build systems (e.g. Maven, Graddle), CI/CD tools (e.g. Jenkins, Travis, Ansible, Puppet), Deployment platforms (e.g. Kubernetes, OpenShift), etc.

By combining these libraries, frameworks and tools, it is possible to build production-grade business applications using programming languages. However, it is still required to provision infrastructure and install all these necessary tools (CI/CD, monitoring, etc) in the environment.

Basically, organizations have to build a development platform before developing business applications.

Cloud based solutions can fill in this gap to some extent by providing a pre-built platform with..

  • Infrastructure (AWS EC2, Azure VMs)
  • Container-based deployment platforms (Google GKE, AWS ECS),
  • Networking (Azure VirtualNetwork, AWS VPC)
  • Monitoring (AWS CloudWatch, Azure Monitor),
  • CI/CD (AWS CodePipeline, GitHub Actions)
  • IAM (Asgardeo, Okta)

Cloud vendors have also provided ways for just writing code and running those, without worrying about infrastructure and deployment (e.g. AWS Lambda, Azure Functions).

Ballerina programming language is developed in this context, which offers built-in capabilities for network interactions, concurrency, JSON/XML data types, observability and deployment methods. Therefore, Ballerina programs can easily utilize above discussed app development eco-system and quickly connect with increasingly growing number of on-prem and cloud based services to develop applications.

HTTP service written in Ballerina language demonstrating JSON and XML processing capabilities

What all these mean is that “programming” production-grade business applications has become a feasible and less complex task due the currently available rich eco-system.

However, this approach still has some drawbacks… Despite of the current comprehensive eco-system, still business logic of the application needs to be programmed, which can take considerable time. Perhaps, the most prominent downside is that inability of business users to understand and contribute to the implementation. This can affect how well business requirements are realized in the actual application and in some cases can make the application hardly useful.

Low-code

Integration platforms

Integration platforms, mainly evolved from Enterprise Service Bus (ESB), provides a complete environments for connecting and orchestrating business systems to build applications. In addition to facilitating integrations with variety of systems using standard protocols (HTTP, FTP, AMQP, MQTT, grpc) and mediating message flows among systems, they have evolved to provide API management and some level of Identity and Access Management (IAM) features.

Graphical integration flow editing capabilities provided by the WSO2 Integration Platform

Furthermore, most of these platforms support integrations with major IAM systems for enabling advanced authentication and access control scenarios for business applications. Almost all integration platforms provide graphical editors for building integration flows, which mainly aims at facilitating integration developers to build apps with minimum coding.

However, integration platforms suffer from some drawbacks in addressing rapid delivery and update requirements for modern business applications mainly due to time taken for platform deployment and setting up necessary IT eco-system. They also have the problem of requiring to embed scripting segments in the integration flow to implement complex business logic.

Although organizations can get an agile and visual business application development platform once all above background tasks are completed, this process can usually take weeks or months.

iPaaS — integration Platform as a Service

Similar to business apps developed using Pro-code methods, integration platforms need to be deployed in some IT infrastructure. Furthermore, this deployment process needs to automated for repeatability and to support upgrades. In addition, separate CI/CD pipelines have to be developed to facilitate artifact deployment on the deployed platform. This whole environment setup process has to be repeated to create necessary number of environments (e.g. development, QA, load testing, UAT, production, etc).

Such cost (licensing, supporting systems and infrastructure) and overhead (setup time, upgrades, skills for maintenance) require business application development projects to be significantly large initiatives with considerable budget and time frame. Ideally, once such platform is deployed, multiple business units should utilize it to build most of their business applications to justify the cost. Organizations may reach such stage at some point in their digital transformation journey, but until that these factors could become barriers for business application development.

iPaaS offerings can address these concerns by providing a ready-built integration platform without requiring a setup time, initial cost, maintenance and supporting systems. This means any business unit, team or an individual can develop production ready business applications, restricted only by organizational policies.

Most iPaaS offerings provide graphical application flow design capabilities (low-code). Some platforms claim to enable users with very little or zero technical knowledge to develop applications (commonly known as citizen developers).

Hybrid platforms

Although iPaaS appear as an attractive platform for business app development, not all organizations can use it. Many organizations have invested in business systems which are deployed in on-premise data centers or in cloud VMs. Using an iPaaS for integrating such systems for building apps could result in security and performance concerns. Furthermore, organizational or regulatory policies may have restrictions for moving data to cloud.

In order to address these concerns, many iPaaS offering provide hybrid deployments, where runtime components of the platform can run either within the iPaaS or in a preferred infrastructure provided by users (e.g. on-prem data centers, could VMs, etc). Still the management plane of the platform is run within iPaaS, which can manage and monitor both iPaaS and on-prem runtimes. This setup is known as hybrid deployments.

Choreo

As we have discussed, programming languages have very high flexibility to implement complex business logic, but are hard for business users to comprehend. In contrast, integration platforms (both on-premises and iPaaS) provide low-code/graphical flow modeling capability, which can be understood by business users.

However, low-code platforms have the problem of limited expressiveness in developing complex business logic required by many applications. Therefore, these platforms support scripting (e.g. javascript, groovy, custom syntax, etc) inside integration flows or plugging in Java code, etc to implement complex logic. However, this approach negates the advantage of graphical flow and moves the integration development towards coding.

Choreo (currently in beta) is a business application development platform, which aims to bridge this gap by providing graphical flow backed by a complete programming language (i.e. Ballerina language). Users can model the flow of their applications using a graphical editor, which contains constructs for all control flow logic such as if..else, foreach, variable assignments, data mappings, etc. At the same time, Choreo editor generates Ballerina code for the modeled application flow.

Therefore, at any point it is possible to edit the application flow either using the graphical editor or using Ballerina code. As Ballerina is a complete integration focused programming language, any complex logic can be programmed in Ballerina it self (for which, Choreo will generate the visual flow).

Visual flow of a business application and its corresponding Ballerina code in Choreo

This gives the advantage that the complete business logic of the application is always captured in both the graphical view and the underlying programming language code. Therefore, both (less technical) business users and integration developers can work on the implementation using their preferred approach (i.e. graphical editor or code).

In addition, as all business logic is captured as first-class constructs in Choreo, it is possible to apply all monitoring, tracing and analysis operations on the complete application.

On top of that, Choreo also provides API Management, security, built-in CI/CD pipeline, API marketplace, etc to provide a complete environment for business application development. Choreo also supports hybrid model by allowing to deploy the runtime layer (currently, only the API runtime) in on-premises data centers (or in cloud VMs). Therefore, it can be considered as platform for developing (integration focused) business applications which provides benefits of all approaches: low-code, pro-code, cloud and on-premises.

--

--