Given the overall system architecture, it is worth remarking that NOS does not require data persistence for IoT-generated data. Rather, data is temporarily cached on the NOS while being processed and before being submitted to the MQTT broker. Accordingly, NOS uses the in-memory capability of MongoDB for two of its databases, namely Raw Data and Normalized Data, whereas the databases Config and Sources must be persistent. A routine runs on NOS in order to remove from Raw Data the data already normalized and from Normalized Data the data already published. Such an approach greatly improves NOS performance, significantly lowering query and read/write performance.