All the data collected needs to be stored somewhere. Many simple IoT nodes will use the memory available on the microcontroller, but more complex nodes may require additional Flash memory, either mounted on the circuit board or by a memory module inserted into an expansion slot. More sophisticated systems that might be found in a factory can require significant resources and can have additional RAM on the board. And last, there is The Cloud where the data can be uploaded, stored, and even processed then fed back to the IoT system.
While many IoT nodes can use the Flash memory on the node's microcontroller, some systems require additional memory for either the system program or for data storage. These systems can utilize Flash memory on the PC board (PCB).
Although many IoT nodes will have enough RAM on the microcontroller to perform its work, some very high performance systems may require additional RAM memory. This may be for normal program storage, or for very high performance digital processing nodes the RAM may be loaded with the program memory on boot, enabling the system to run code out of RAM much faster than from Flash by reducing the wait states for the processor.
Some IoT nodes may require the use of removable memory for expansion, security, or program memory storage.
Most IoT systems will transfer data to Cloud storage from the main host system. However, some IoT nodes may directly upload to cloud storage, or even get its code from cloud storage.