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.
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.
Node-RED flow: How it looks
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.
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
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
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.
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.
Condition node
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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:
System | Node-RED | Corezoid |
---|---|---|
Price | 100% free (a project with open-source code) | There is a free trial version for 30 days. The minimal version costs $30 |
Solution Provider Binding | No | Vendor-lock-in |
Who created | IBM (USA) | Middleware (USA) |
Date of implementation | 16 October 2013. - 0.2.0– v0.14 | the exact data is not found |
Client’s profile | Sense Tecnic, Agilite, Go-IoT, Spirit, Opto 22 and many others | Western Union, Visa, Mastercard, Viber and many others |
Quality of documentation | High | High |
Help center and support | There is only a blog and forum | There is the possibility to contact the support by mail |
Community and forum discussions | Forum, active channel of Slack team | Not found |
Udemy courses | Yes, around 6,000 videos | No |
Stable releases | Yes | Yes |
Conception of service | PaaS (platform as service) | SaaS (software as service) |
Variety of installation guides | Wide range of opportunities | Simple, freе trial page of registration. To host on your own server, you must acquire the application |
Support for local copying | Yes, documentation. It is necessary to install Node.js | No |
NPM support | Yes | No, but it is possible to connect the third-party repositories |
Cloud environment | IBM (Bluemix), AWS, MS-Azure, etc | AWS, MS-Azure, etc |
Editor of flows | Web | Web |
Flow-chain scheme | From left to right | From left to right From top to bottom |
Level of the comfort of user interface | High | High |
Debug regime | Yes | Yes |
Possibility to log the code | Yes | No |
Metadata | JSON | JSON |
Native logging | Info, debug, error + fatal, warn, trace, off | Info, debug, error |
API for creating nodes and processes | Yes | Yes |
Unlimited scalability | Yes (if developed as a stateless app). Provides unlimited scaling and built-in stability for handling peak loads | No |
Possibility of development in different environments | Yes, it is possible to create an unlimited number of environments | No, the development is carried out in one environment |
Support of the systems of management of different versions | Yes | No |
Managing flow versioning | Yes, through integrated interface GitHub | No |
Instruments of import/ export | Yes, both the whole process and independent nodes | Yes, but only the whole process together |
Integration of databases | Yes, through the libraries. Both SQL and no SQL are supported | No (only through API or when connecting repositories) |
Native dashboard | Yes, but it is necessary to build it: dashboard | Yes |
Native database | No, but it is possible to save the data in the application’s memory | Yes |
Support for custom nodes | Yes | No |
Rich library with packages | Yes The main benefit: community always publishes different solutions and utilities about Node-RED | No |
The ability to write code | Yes, Javascript | Yes, Javascript, Earlang |
Let’s talk. Just enter your details and we will reply within 24 hours.