Visual Flow-Based Programming ist in den letzten Jahren immer populärer geworden, da es Entwicklern ermöglicht, komplexe Anwendungen durch visuelle Darstellung und Low-Code-Methodik zu erstellen. Besonders im Bereich der ereignisgesteuerten und nebenläufigen Systeme hat sich das Konzept als äußerst effektiv erwiesen. Mit Node-RED schuf IBM eine leistungsstarke Plattform, die visuelle Programmierung mit einer einfachen Handhabung verbindet. Doch trotz seiner Stärken stößt Node-RED durch die Einbindung von Node.js und dessen single-threaded Architektur an Grenzen, wenn es um Skalierbarkeit und parallele Verarbeitung geht.
Genau hier setzt Erlang-RED an – ein innovatives Projekt, das die bewährte visuelle Programmierung mit der robusten Concurrent-Architektur von Erlang verbindet. Das Ergebnis ist eine zukunftsweisende Plattform, die die Vorteile beider Welten vereint und Low-Code-Programmierung für skalierbare Anwendungen neu definiert. Erlang ist eine Programmiersprache, die speziell für nebenläufige, verteilte und fehlertolerante Systeme entwickelt wurde. Sie findet vor allem in Telekommunikationssystemen und anderen Bereichen Anwendung, in denen zuverlässige und skalierbare Prozesse unverzichtbar sind. Die zugrundeliegende Virtuelle Maschine, die BEAM, unterstützt hunderte Tausend parallele Prozesse, die in Echtzeit miteinander kommunizieren.
Dies macht Erlang zu einer idealen Basis für Systeme mit hohen Anforderungen an Performance und Verfügbarkeit. Allerdings ist Erlang für viele Entwickler aufgrund seiner syntaktischen und konzeptionellen Besonderheiten keine einfache Sprache. Hier setzt Erlang-RED mit seiner visuellen Flow-basierten Programmierumgebung an, die es auch weniger erfahrenen Anwendern erlaubt, die Vorteile der Erlang-Laufzeitumgebung zu nutzen. Das Kernprinzip von Erlang-RED ist es, einen kompatiblen Ersatz für das Node.js-Backend von Node-RED zu schaffen – und zwar in reiner Erlang-Implementierung.
Diese Kompatibilität ermöglicht das Ausführen existierender Node-RED Flows nahezu unverändert. Zwar sind nicht alle Funktionen 1:1 umsetzbar – so werden insbesondere Javascript-Funktionsknoten nicht unterstützt – doch der Großteil der Funktionalität ist integriert oder in Arbeit. Daraus ergibt sich die Möglichkeit, Low-Code-Workflows, die bisher in Node-RED erstellt wurden, in eine leistungsstarke, nebenläufige Umgebung zu migrieren. Dies bringt enorme Vorteile für Einsatzszenarien mit hoher Belastung oder bei verteilten Anwendungen. Die Entscheidung, Erlang als Backend zu verwenden, basiert nicht nur auf dessen Fähigkeit zur Parallelverarbeitung, sondern auch auf den eingebauten Überwachungsmechanismen.
Erlang kennt das Supervisor-Pattern, mit dem Prozesse überwacht und gegebenenfalls automatisch neu gestartet werden können – eine Funktion, die für stabile und ausfallsichere Systeme essenziell ist. Erlang-RED bindet diese Konzepte in Nodes ein, die in der Flow-Präsentation wie Blöcke miteinander verbunden sind. Jeder dieser Nodes ist dabei tatsächlich ein eigener Erlang-Prozess, der unabhängig oder in einer Hierarchie läuft. Dies unterstreicht die tiefgreifende Ausrichtung auf echte Nebenläufigkeit und robuste Prozessarchitektur. Neben der Grundfunktionalität hat Erlang-RED außerdem eine Vielzahl von Nodes implementiert, die wesentliche Operationen erlauben.
Dazu gehören Datenmanipulation über Change-Nodes, HTTP-Anfragen, MQTT-Kommunikation, JSON-Verarbeitung, Timer, Trigger und weitere. Besondere Aufmerksamkeit wurde auch der Unterstützung von gen_statem und gen_event gewidmet, zwei zentralen Erlang-Verhaltensmustern, die in spezialisierten Nodes genutzt werden können. Interessant ist auch die Integration von JSONata – einer mächtigen Abfragesprache für JSON-Dokumente – deren Basisfunktionen mittels eines eigenen Parsers zur Verfügung stehen, um komplexe Datenfilter im Flow elegant umzusetzen. Entwickler profitieren bei Erlang-RED zusätzlich von der Tatsache, dass sie eigene Nodes in Erlang oder sogar Elixir schreiben können. Dies bedeutet, dass das Ökosystem flexibel erweitert und an spezifische Anforderungen angepasst werden kann.
Dabei steht der Grundsatz im Vordergrund, möglichst nahtlos in die Flow-basierte Infrastruktur eingebunden zu sein und klassische Erlang-Features wie Zeitüberschreitungen oder Prozessüberwachung zu unterstützen. Ein weiterer wichtiger Aspekt liegt in der Entwicklungsstrategie des Projekts. Die Arbeit erfolgt flow-getrieben, das heißt es werden zahlreiche Testflows verwendet, die sicherstellen, dass die Node-Funktionen konform zum Vorbild Node-RED arbeiten. Diese Flows bilden quasi die Spezifikation ab und erleichtern es, Funktionalitäten schrittweise einzuführen und weiterhin stabil zu halten. Dabei kommen auch visuelle Unit-Tests zum Einsatz, die direkt in der Flow-Editor-Oberfläche ausgeführt und überwacht werden können.
So entsteht eine hohe Zuverlässigkeit beim Ausbau des Systems. Für Entwickler und Teams, die schnell in Erlang-RED einsteigen wollen, gibt es klare Build- und Deployment-Optionen. Die Nutzung von Rebar3 für Dependency Management und Kompilierung ist Standard. Zur schnellen Entwicklung bietet sich der Einsatz von Docker-Containern an, die das Setup vereinfachen und eine isolierte Entwicklungsumgebung mitbringen. Der Flow-Editor selbst wird als Web-App auf einem internen Webserver geöffnet und bietet eine moderne, intuitive Nutzeroberfläche.
Die Möglichkeit, Erlang-RED auf Cloud-Plattformen wie Fly.io oder Heroku einzusetzen, erweitert die Einsatzflexibilität erheblich und eignet sich für produktive Anwendungen. Die Community rund um Erlang-RED ist zwar kleiner als die von Node-RED, jedoch hoch engagiert. Die Offenheit für Beiträge und Erweiterungen ist gegeben und das Projekt verfolgt das Ziel, mit aussagekräftigen Milestones voranzuschreiten. Besonders der Austausch mit der Node-RED-Community bringt Synergien, da viel Know-how der etablierten Plattform direkt übertragbar ist.
Gleichzeitig zeigt das Projekt, wie mit intelligentem Design und der Nutzung von Erlangs Stärken neue Wege bei der Low-Code-Entwicklung beschritten werden können. Die Idee, visuelles Flow-Based Programming auf Basis von Erlang zu realisieren, ist eine spannende Lösung für die Herausforderungen moderner Softwareentwicklung. Nebenläufigkeit, Fehlertoleranz und dynamische Skalierbarkeit lassen sich hier auf natürliche Weise abbilden, während die Benutzerfreundlichkeit dank visueller Verarbeitung erhalten bleibt. Für Unternehmen, die neben produktiver Entwicklung auch Stabilität und Performance benötigen, ist Erlang-RED eine attraktive Alternative. Ein Blick auf die Zukunft zeigt weiteres großes Potenzial.
Mit der stetigen Weiterentwicklung von JSONata-Unterstützung, der Einbindung weiterer spezieller Nodes und der verbesserten Integration von Elixir als ergänzende Programmiersprache stehen Erweiterungen an, die Erlang-RED noch leistungsfähiger machen. Auch die Lücke bei Javascript-basierten Funktion-Nodes könnte eventuell durch gezielte Workarounds oder hybride Lösungen geschlossen werden. Zudem öffnen sich Anwendungsfelder rund um IoT, verteilte Systeme oder Echtzeitanalyse, bei denen geringe Latenz und sichere Nebenläufigkeit von zentraler Bedeutung sind. Zusammenfassend lässt sich sagen, dass Erlang-RED als innovativer Vertreter des Visual Flow-Based Programmings im Erlang-Ökosystem die Strengths von Erlang konsequent ausspielt und gleichzeitig die Bedienerfreundlichkeit von Node-RED adaptiert. Für Entwickler, die mit modernen Anforderungen an Performance, Robustheit und Entwicklungsgeschwindigkeit konfrontiert sind, bietet sich hier eine spannende Plattform mit zukunftsfähigem Ansatz.
Es lohnt sich, das Projekt näher kennenzulernen, um die Vorteile der Kombination aus Low-Code und Erlangs Parallelitätsmodell gezielt zu nutzen und kommenden Softwareherausforderungen proaktiv zu begegnen.