A Visual Programming module designed to build complex logic, data transformations and KPI calculations in a visual and intuitive way. This module is able to receive input event data, make a series of calculations and generate instantaneous data/alerts in reply to changing conditions.

The GeoWorldSim Sandwich module works by chaining simple operation blocks to design an asynchronous function. Each code block (called ingredient) has several input and output parameters that need to be connected to their prior and post. When said function is invoked, it will go through all its blocks executing them in cascade and passing the parameters from one to the next. These functions can be triggered in response to events, such as changes to data in the Historic module, displayed in the Dashboard module or called from an agent in a simulation.

The Sandwich module follows the Reactive Programming paradigm, concerned with data flows and the propagation of change. While standard computation tends to employ synchronous request-response interactions, reactive programming aims at creating observers which are subscribed to data changes.

Whenever a change is emitted, the observer will perform calculations to process the change and obtain more meaningful information about a situation. This calculus can include analyzing the sequence of the value changed, aggregating all the values or comparing values to thresholds (e.g. for alert generation).

On the whole, the Sandwich module provides a really sophisticated mechanism for business intelligence implementation and asynchronous computing delegation.