What

A continuous evolution.

What is the Nabu Platform

The Nabu Platform has seen 10 years of development and at least 5 years of production usage at various clients. Over that time we have simply built too much to dig into in a single article.

There are however some basic facts that might be relevant, first and foremost: the Nabu Platform is an opensource platform built on Java SE which means it runs on pretty much anything from Amazon to a raspberry. It is deeply integrated with java itself making it easy to add existing libraries to the platform. For example for automated testing we integrated selenium and soapui as two separate modules.

It is a modular platform where each module contains a particular feature, for example a CMS, an HTTP server, a JDBC connection pool, the ability to create REST services...

Apart from the modules there are two core parts to the platform: the Nabu Integrator and the Nabu Developer. The integrator lives on the server(s) and is responsible for actually running the application. The developer tool is a lightweight desktop tool that lives on the client PC and that connects to the integrator. I say lightweight because developer itself is a bit like a browser in that it only provides a framework. The actual functionality that makes developer useful is distributed in the modules that the server streams to the developer.

Because developer can connect to any integrator, it can also connect to any environment (dev, qlty, prd,...) and view or edit the application. Any change you make is reflected immediately by the server. Developer also sets up a websocket connection to the server that allows for collaboration between multiple developers with for example auto-locking and refreshing.

With the developer you can create anything in the backend (for example REST services, swaggers, UML models...) and it also allows you to edit the source code of your web applications (so mostly javascript, css and html). However one particular module that you can install contains the Nabu Page Builder which allows you to visually create web applications without having to actually write any code.

Between Nabu Developer and Nabu Page Builder you can create an entire web application without writing any java, javascript or HTML code.

Deployment

As a rule we like to keep external dependencies to a minimum. By external dependencies I mean additional things you have to do -apart from setting up the platform itself- to get an application up and running in production.

This usually entails setting up build pipelines that perform scss compilation or javascript minification. Tools that inject environment specific configuration and create deployable artifacts. We have made all those things part of the platform itself.

For example scss compilation and javascript minification are done on the fly by the server and we have deployment tools that are built on top of the platform itself and fully understand all the artifacts they are about to deploy. Including which configuration might need to be different per environment.

Moving Target

The TODO list is neverending and as such the answer to "what is nabu" is a moving target. In the coming months we'll be releasing articles that dive into the existing functionalities and we hope that you'll participate in improving what is already there and help us to imagine what the future might bring!

The sky is the limit.

May 16, 2019
Alexander Verbruggen