Executive Summary

Both Node-RED and Corezoid are effective low code tools and visual programming environments that significantly simplify the work of the developer. Still, Node-RED has a set of well-visible advantages that makes it more beneficial in the long-term perspective. The main advantages are: it is free, there are more than 6000 educational videos for the developers of different experiences that can be viewed on Udemy, there is the possibility to log the code, create an unlimited number of environments, and perform unlimited scalability in case of need. As well, it uses platform-as-a-service technology that is very useful for developers, as PaaS helps the developers to develop, run, and manage their apps without the need to develop and maintain the infrastructure. Moreover, there is no need to perform software updates or to do regular hardware maintenance. Node-Red provides all the necessary environments to build and deploy the project. Moreover, there is an open library with ready-made packages, as well as the opportunity to use both SQL and no-SQL databases. To conclude, the comparison of Node-RED and Corezoid has demonstrated that each of these environments has its specifics, as well as advantages and disadvantages, however, Node-RED looks more beneficial and flexible, that allows adaptation to the projects of different scope and complexity. 

 

Why is it important?

To develop solutions in the field of finance, in addition to classical programming languages such as Java, Javascript, and Python, visual programming tools are also used, which allows not only programmers but also specialists with a lesser knowledge of programming languages to automate processes. At the moment, the two most popular tools are Node-Red and Corezoid. We will analyze them in this article.

 

How does it work? 

Node-RED flow: How it looks _ image

Node-RED flow: How it looks

 

Corezoid flow: How it looks _ image

Corezoid flow: How it looks

 

In both Node-Read and Corezoid, development takes place in a browser-based editor where users work with nodes, arranging them into process branches, forming a flow. A node is a set of functions that perform certain actions and/or checks. After working out the node, at the output, we get a request—

a JSON object that will be sent to the next node. Which one depends on the result obtained in this node and on the described logic. Created flows are loaded into the runtime environment with a single keystroke.

Also, both systems provide the possibility to write code in an editor as an alternative to visual programming.

Corezoid is a paid solution created by a Middleware-based company, written in Erlang language. It has a lower entry threshold compared to its competitor. Corezoid immediately comes with a full set of tools to get started, which is a big plus, since users do not need to separately deploy a server, database and queue system. They create a trial account and can start working. In the development of this platform, a stateful approach is used, in which data is stored in the nodes themselves. It can cause refresh and scaling issues. As an example, each node in Corezoid has its own identifier, and if this identifier changes, the data from this node will be lost.

Node-RED is an open-source solution created by IBM and written in Node.js. The entry threshold is higher since users will have to deal with databases, the server and queues, as well as ways to connect them. Node-RED uses a stateless approach in which all data is stored separately from the program code, which is a plus when scaling and updating.

 

Main nodes

Checking the conditions. Switch (Node-Red)  vs. Conditions (Corezoid)

Both in Corezoid and in Node-RED, there is a node that allows directing the inquiry to different flows depending on implemented conditions. 

In Node-RED, this node is similar to switch in Javascript. It compares the indicator of the same parameter.

Switch node _image

Switch node

 

In Node-RED, in contrast to Corezoid, there is a possibility to create two asynchronous flows, if the indicator of the parameter that we are checking corresponds to the norm in two or more checks.  

Switch node _image2

Switch node

Node-RED vs Corezoid / Switch node_image

Switch node

 

In Corezoid, this node is called Сonditions and realized similarly to if/else if. In one node, it is possible to compare different expressions.

Node-RED vs Corezoid

Condition node

 

There is the possibility to compare equal, unequal, greater than and less than, as well as use regular expressions and compare different data types.

Node-RED vs Corezoid

Condition node

Node-RED vs Corezoid

Condition node

 

Processing http requests. Http request (Node-Red) vs. API Call (Corezoid)

Another pair of nodes that are frequently used and that are delivered from the box are nodes for processing http requests. In Node-Red, it is http request node; in Corezoid, it is API Call. 

In http, the requesting node can dynamically transfer all the parameters, including Method, URL, Headers, or demonstrate them directly in node. 

Node-RED vs Corezoid

Request node

 

As a response, it is possible to receive not only a JSON object but also UTF-8 and binary, depending on what data we are going to work with.

Node-RED vs Corezoid

Request nodes responses

 

In Corezoid, the API Call node is responsible for this function. It supports all methods, but in contrast to Node-RED, only JSON can be received in response.

Node-RED vs Corezoid

API Call node

 

Variable declaration. Set Parameter (Corezoid) vs. Change (Node-Red) 

Set Parameter allows users to add new parameters to the request, set their values and change the values of existing parameters.

Also, with this node it is possible to implement the following functions:   

  • Reading node parameters – returns the value of the request counter in the node, or the value of the parameter from the request, stored in Corezoid
  • Parameter values – returns the value of the request parameter from the specified process (it is possible to search for requests that are stored in Corezoid processes)
  • Time and date – functions for converting and formatting date/time
  • Mathematical – return the result of mathematical operations (addition, subtraction, multiplication, and division) of constants and/or parameters
Node-RED vs Corezoid

Set parameter node

 

In Node-RED, Change implements the same functions as Set Parameter in Corezoid, and also provides the possibility to rename and delete the parameter. When setting the properties, the value can be the result of a JSON expression (an open-source declarative query and transformation language for JSON data), which also performs a mathematical function. The advantage is the ability to save/change the value of the parameter in the application’s memory, to access it multiple times.

 

Node-RED vs Corezoid

Change node

 

Nodes of code implementation. Code (Corezoid) vs. Function (Node-RED)

Both in Corezoid and in Node-RED, it is possible to execute the code. Corezoid works both with JavaScript and Erlang, through the node of API Code.

Node-RED vs Corezoid

Code node

 

In contrast to Node-RED, in which the process stops if an error occurs in the node responsible for executing the code, in Corezoid it is possible to set the value of the time interval, upon reaching which the request will go further in the process if the API Code node does not respond. In Node-RED, it is possible to use try/catch to handle errors, either inside a code node or using a catch node.

In Node-RED, this code execution node is called Function and it only allows you to work with JavaScript. Inside Function, it is possible to use the switch and set up several exits from this function, which helps to significantly reduce the number of additional nodes and avoid visual overload.

The main difference and unconditional advantage of Node-RED is the ability to install any library since, in Corezoid, the number of libraries is predetermined and limited.

Also, in Node-RED it is possible to execute code at the start of the application and split the flow into several flows, performing actions asynchronously. This is useful in cases where we need to perform several actions in parallel—for example, save the username to the database while continuing to move along the flow.

 

Data Storage

The advantage of Corezoid is that it provides a database, and all requests that come into your flow can be stored in the Callback node, which can then be accessed through the set param node (or the Corezoid API). The data in the nodes is stored in JSON format.

In Node-RED, it is possible to store data in the application’s memory, but if it crashes, the data will be deleted. Memory often stores either a cache or data that is written when the application starts.

 

Custom Nodes

Since Node-RED is an open-source solution, it allows installation of custom nodes written by third-party developers, while Corezoid only allows using Core nodes. Still, Corezoid has a GIT Call node that can connect and execute code from Git repositories. In the new version, the developers added support for connecting to private repositories and expanded the list of supported languages to five: JS, Python, Go, PHP and Java.

 

Work with Requests 

In Node-RED, it is possible to create your own APIs using the http-in and http-response nodes. In the first node, it is possible to specify the endpoint to which requests will come; in the second, it is possible to send any response and any status code.

Corezoid does not have this feature. You can still forward requests to the flow, but the answer to them will always have the same status and message.

At the same time, in Corezoid there is the possibility to connect webhooks in a few clicks for all popular messengers. There is also a unified bot platform that allows creating your own chatbot with texts, buttons, localizations and logic in a few clicks, with the possibility to connect them to all popular messengers.

 

Version Control Systems

The last topic I would like to mention is environments and version control systems.

Node-RED is capable of running a process across multiple environments (for example, dev, stage, prod) and supports versioning systems such as Git. Such an approach allows developing locally or in a test environment and also gives the opportunity to roll back the version and return the process to the state when changes were made to it.

Corezoid does not have this possibility. Development is carried out exclusively in one thread and it is impossible to roll back changes. You can create logic in a separate flow, and then transfer it to the working flow manually, but this is rather a half measure.

 

Conclusion

Both Corezoid and Node-RED are two great visual programming tools. Their main differences are the price, the entry threshold and the possibility of customization.

Corezoid is suitable for companies that want to automate business processes on their own and as quickly as possible. Employees of these companies will be able to quickly understand the product and start building the first processes thanks to the lower entry threshold. The disadvantages are the fees for using the product, as well as the lack of flexibility of the tools.

Node-RED is suitable for companies that have the available specialized professionals or time that will be spent on training staff and deploying a development environment. Using Node-RED, in the long run, brings benefits such as monthly fee savings and a more flexible and functional system. Also even though the solution is free, IBM plans to support it in the future.

 

Comparison table of the main indicators and useful links:

 

SystemNode-REDCorezoid
Price100% free
(a project with open-source code)
There is a free trial version for 30 days.

The minimal version costs $30
Solution Provider BindingNoVendor-lock-in
Who createdIBM (USA)Middleware (USA)
Date of implementation16 October 2013. - 0.2.0– v0.14the exact data is not found
Client’s profileSense Tecnic, Agilite, Go-IoT, Spirit, Opto 22 and many othersWestern Union, Visa, Mastercard, Viber and many others
Quality of documentationHighHigh
Help center and supportThere is only a blog and forumThere is the possibility to contact the support by mail
Community and forum discussions Forum, active
channel of Slack team
Not found
Udemy coursesYes, around 6,000 videosNo
Stable releasesYesYes
Conception of servicePaaS (platform as service) SaaS (software as service)
Variety of installation guidesWide range of opportunitiesSimple, freе trial page of registration.
To host on your own server, you must acquire the application
Support for local copyingYes, documentation.
It is necessary to install Node.js
No
NPM supportYesNo, but it is possible to connect the third-party repositories
Cloud environmentIBM (Bluemix), AWS, MS-Azure, etcAWS, MS-Azure, etc
Editor of flowsWebWeb
Flow-chain schemeFrom left to rightFrom left to right
From top to bottom
Level of the comfort of user interfaceHighHigh
Debug regimeYesYes
Possibility to log the codeYesNo
MetadataJSONJSON
Native loggingInfo, debug, error + fatal, warn, trace, offInfo, debug, error
API for creating nodes and processesYesYes
Unlimited scalabilityYes (if developed as a stateless app). Provides unlimited scaling and built-in stability for handling peak loadsNo
Possibility of development in different environmentsYes, it is possible to create an unlimited number of environmentsNo, the development is carried out in one environment
Support of the systems of management of different versionsYesNo
Managing flow versioningYes, through integrated interface GitHubNo
Instruments of import/ exportYes, both the whole process and independent nodesYes, but only the whole process together
Integration of databasesYes, through the libraries.
Both SQL and no SQL are supported
No (only through API or when connecting repositories)
Native dashboardYes, but it is necessary to build it: dashboardYes
Native databaseNo, but it is possible to save the data in the application’s memoryYes
Support for custom nodesYesNo
Rich library with packagesYes
The main benefit: community always publishes different solutions and utilities about Node-RED
No
The ability to write codeYes, JavascriptYes, Javascript, Earlang

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Contact Us: