Whitepaper
How to Build Your Future With Codeless Architecture
A new evolution in enterprise software development
What is Codeless Architecture?
Codeless Architecture (CA) is a development paradigm in which all code is simplified into reusable components that perform a specific task when triggered by an event. As a developing open standard, CA is inherently agnostic to the technology or programming language running underneath.
Each component is a configurable atomic unit with its configuration published through the CA standard. Components can be anything, ranging from input fields, UI layouts, logic/rules engines, ETLs, integrations/services, or data stores. The CA treats those components as simplified elements interacting with each other through a common event-based framework, with components either being publishers or subscribers to those events.
Atomic components can be composed into reusable microservices and other higher-level application functionality—all without writing, managing, or seeing a line of code.
Codeless Architecture has two core elements:
- The Codeless Definition (CD) encapsulates all the information needed to run a given application. It is a flexible, data-oriented, and event-based definition that is an open standard and optimized for complex logic, integration, and security
- The Codeless Run-Time Engine (CRTE) interprets functionality and workflows designed within the CD into an application, with specialized renderers optimized to specific tasks or channels
Before we dive deeper into CA, let’s briefly explore the problem that this new software building approach is tackling.
Explore Further: Codeless Architecture, Abstraction, and the Power of Truly Declarative Development
Code limits innovation
Few enterprise technology teams rely solely on bespoke hand-coding as this approach is inherently difficult to scale. That’s why over the past two decades, the market has addressed these limits with various forms of abstraction, and thus inspired the rise of low-code/no-code (LCNC) development approaches. However, not all platforms in LCNC are created equal, as we’ll explore later in this piece.
While code can be auto-generated, there are still limits to traditional (and low-code-based) development approaches which lead to dev teams struggling to keep up with business demands. With its tight coupling of logic and technology—both entrapped in technical syntax that is too granular in its control—traditional development approaches are inherently not scalable, safe, nor optimized even in the hands of experienced developers.
With a traditional code-based approach:
- Workforce scalability is limited by the number of developers who have mastered a complex syntax; even experienced developers' productivity is inhibited by the growing complexity of modern ecosystems
- Reusability is difficult as code is not abstracted to its core logic and often allows too many variations of the same thing. Even achieving the same functionality would require a different code base depending on the channel or medium it is run in
- Upgradeability requires major migrations and re-writing the code into a new platform. Combine that with limited reusability, and the problem is exponentially compounded
- Code-based approaches are inherently fragile with most of the vulnerabilities introduced through a bespoke code that is poorly tested and hard to trace
This might all sound quite familiar. Before the advent of the cloud, the same exact shortcomings could have been used to describe the infrastructure layer. Serverless Architecture (SA) overcame these challenges by abstracting away the need to purchase and maintain physical servers. Now, with CA, the software-based version of these challenges can be likewise abstracted away.
The business benefits of Codeless Architecture
What makes CA different from yet another programming language is that it is purpose-built for the modern need of composability, extensibility, and reusability.
Organizations can readily optimize and extend their architecture by leveraging:
- multiple IDEs to define applications within the open-standard Codeless Definition, as well as
- multiple renderers to interpret the application into relevant channels (e.g., mobile, desktop, digital assistants, etc.)
The CD allows organizations to future-proof their technology by decoupling customer IP, making it upgradable (i.e., technology teams no longer have to worry about maintaining their technology infrastructure). Leaders can spend more on innovation instead of keeping the lights on, reducing TCO.
The Codeless Definition natively provides:
- A standard interface for all componentized application functionality to be integrated in, with a common event-driven language that defines their interactions
- A strongly typed data structure that gives it unparalleled traceability and unlocks unique analytics on the software structure
- A composable nature where codeless definitions can refer to another codeless definition as a discrete component, making it infinitely abstractable
- A declarative method to define applications is the most natural fit for an IDE to build the codeless definition (See next section, “Codeless Architecture and no-code”)
The CRTE engine takes a configuration file (the CD) and dynamically renders it using a library of assets to pull from. Even storing data is a component or asset that is abstracted away in the definition, and is dynamically decided at run-time.
The separation of concerns between definition, assets, and runtime is key. The components adhere to a strict contract of the codeless definition, giving the engine the ability to swap away from the code behind the components as long as their contract is not violated. For example, the CRTE can swap a component written in Angular to one written in React without impacting the application it is running. The result is a continuous upgradeability to the latest and greatest technologies.
Codeless Architecture and no-code
In recent years, the LCNC category has recently picked up momentum in the software industry and is seen as the pinnacle of configuration-based application building. LCNC is defined as a visual method to build applications without having to write technical syntax.
Although linked, LCNC is an independent concept from the architecture or technology it is actually building. An LCNC platform could be a front end to generating configurations, code, or even legacy systems.
The LCNC and application will however inherit the shortcomings of the architecture and technology it is producing. Broadly speaking from an architecture perspective, there are two types of LCNC platforms:
- Low-code/no-code designers built on top of a traditional architecture. These platforms generate code (sometimes through the intermediate of a meta-data file), and often let the creator edit the code, hence the “low-code” part of the builder. It is part of the reason why no-code and low-code are lumped into the same category as the border between the two is blurry. Since fundamentally those platforms often revert back to code that is not hidden for the users, they suffer from the same limitations of the underlying code.
- No-code designers built on top of Codeless Architecture. This approach generates a definition that strictly adheres to an open standard (even when integrating legacy systems built with code). Moreover, the CA allows the creation and assembly of a Codeless Definition through a variety of purpose-built designers (e.g., UI no-code designer, a no-code API designer, etc.) or even foregoing designer entirely and having the system generated configuration.
Of the two, no-code for CA is a more natural fit because the two layers (the designer and the architecture) are both declarative and built on the idea of composability, so they are swimming in the same direction.
Unqork at the heart of Codeless Architecture
This might sound all theoretical, but Codeless Architecture is here and real. Unqork introduced it back in 2017 and has been on a continuous quest to transform how software is architected and built for the enterprise. What makes Unqork’s implementation of CA distinctive is differentiated across three key pillars:
- Codeless Architecture is at the core of the Unqork platform and is the unified framework that defines the application. Unqork’s Codeless Definition is a JSON human-readable file, is open, and is Turing Complete (see Unqork Turing Complete). In fact, a good portion of the Unqork Platform is built with Unqork itself, proving the completeness of its approach. Its Codeless Run-Time Engine is a high-performance cloud-native engine that can render the same CD into either a front-end experience or server-side API.
- A no-code designer that is completely visual and used not only to build but to test, manage, operate, monitor, and analyze your application and the environment it runs in. Its focus on reusability and composability—not only of the out-of-the-box native components, but also of previously configured applications, services, and integrations. This provides tooling and guardrails to ensure applications are well architected and managed. The Unqork Designer particularly excels at building bespoke and sophisticated UIs (Presentation), complex workflows/orchestrations (Orchestration), and integrations/data transformations (Integration), all done through a visual interface.
- Enterprise capabilities that provide best-in-class hosting, scalability, and availability, making it particularly well suited to run mission-critical global applications. Best practices in SDLC—including governance, RBAC, release management controls, version controls, testing, monitoring—are built-in and provide strict controls over the entire environment to avoid the proliferation of ill-architected or poorly tested apps.
- Industry-leading security implemented in a systematic way across the entire platform. Everything including authentication, authorization, and encryption can be managed and monitored in one source of truth, without the vulnerabilities of code. Fix an issue once, you fix it everywhere.
A codeless composable architecture
The codeless architecture is composable at its core. There are Unqork artifacts, or assets, of various types: modules, components, workflows, nodes, services, and more, similar to LEGO blocks that come in different colors and shapes. Those assets can be distributed through Marketplace and central asset registries to enable re-use of business logic. The marketplace can be viewed as Unqork’s ‘LEGO Store’.
The Unqork platform enables configurators to construct different kinds of enterprise applications by mixing the assets together, composing business logic out of simple building blocks, or from other composed blocks. To quickly compose beautiful business applications, a configurator does not need deep technical skills; in similar fashion, there is no need to know how to use tools, or become an engineer, in order to build with LEGO blocks.
Composability allows for strong abstraction because at each composition level there is strong re-use of lower composable elements, which themselves are composed from other elements. Furthermore, compositions can be published as consumable assets. The ability to extend by composition gives Unqork powerful capabilities, ease of use, and high development velocity.
Following the Open Closed architecture principle, with composition and assets, the Unqork platform is open for extensions but closed for modifications.
Conclusion
Codeless Architecture isn’t some iterative improvement, it’s a new paradigm! Organizations who embrace Codeless Architecture will be able to rapidly adjust their digital ecosystem to overcome business challenges of any scale with future-proof software. In the coming years, there will be an increasingly sharp divide between Codeless organizations that navigate a rapidly changing marketplace and those that can’t. What side do you want to be on?