Our stack is built on industry standards and comprised out of three layers. Each layer has been designed and redesigned in the past decade and are now almost all at their third generation. This is significant since each generation offers more stability and usability with less code, over 20 man years of experience condensed.
Both the data and analytics layer are written in Java allowing it to run anywhere. Both employ the OSGI architecture to enforce strict modularity and reusability which is also used to send space crafts to Jupiter. Using proven paradigms such as MVC we ensure production ready applications. We use industry standard libraries such as Netty , Mongo , Jackson to run our infrastructure. The top layer is build on modern standards such as node.js, and React enabling to build web apps fast.
Data
Our data layer is called ‘Q’ which is short for quick. We learned the hard way that managing a lot of data sources from different suppliers and all kind of formats, environments, time scales, sizes and so on with less then 1 FTE can only be done if there is almost no configuration and a lot of automation. This led to some interesting design choices we made that sets us apart from competition. We use a peer-to-peer architecture since it requires no configuration and allows us to scale our data networks seamlessly. The p2p architecture and OSGI pattern allows us to elegantly deploy microservices in these networks to deal with changes (fixes or features) without downtime. Using this architecture it becomes natural to build event driven processes and work with streaming data.
The data layer is automatically monitored without configuration so we know exactly what is going and get notified immediately when some abnormal behaviour is triggered.
Analytics
The analytics layer is fed with data from Q and is used to transform data to information.
The analytics layer is where we write all necessary data processing algorithms and do the server side visualisation of the data. Here we focus in combining raw data sources into useful information. Adding the spatial context to your data, importing other spatial data sources and so on.
Interaction
The web-app layer is where all interaction between the end-users and the processed data takes place. It is a rich interactive html5 view on the data and thanks to the meteor platform it runs on any device.