Memory requirements for your Raspberry Pi with SD and eMMC
To support the writing of image updates to the simple board computer (SBC), you need to think carefully about your Raspberry Pi and the SD card in it. A key consideration is writing to the SD card and not wearing out the flash memory. If the flash memory does get worn out before the end of the lifecycle of your device, the device will stop working. Then the device will have to be manually replaced by a technician in the field. So it is key to be aware of excessive usage as flash memory has a limited number of times it can be written to.
Raspberry Pi SD pros and cons
Flash memory is inexpensive but it does not have the longest life time. You can make the memory last longer. You can do this by evening out the writes over the different sections in the memory. So be mindful of memory writes before the device is deployed into the field. The upside for memory with Raspberry Pi is that it does have an SD card slot so memory can be upgraded but this is not ideal if you have a large, geographically dispersed fleet as it would require technicians to upgrade the memory manually. This would be time consuming and costly for your IoT project.
eMMC as an add on fix for Raspberry Pi SD
Not all devices use flash memory, devices in IoT projects often ship with eMMC (embedded MultiMediaCard) memory and this is a much more robust and sustainable option for industrial projects. eMMC has the advantage that it does not wear out so easily. eMMC is more expensive as a form of memory and is often integrated into the computer. With eMMC, the flash memory and controller are included on a single integrated circuit which is integrated into the device. The good news is that the SD card slot on the Raspberry Pi can be used to support the use of eMMC. For example, the RasPiKey is a module that can be inserted into a micro SD card slot on a Raspberry Pi, providing 16Gbyte of memory, a faster read and writing speed and a most robust SD card.
Therefore as your IoT project is being planned you should consider carefully whether eMMC is actually a better option than SD to meet the needs over the lifecycle of the project. Memory over a life cycle depends on the usage in the specific project case. If you do a full RootFileSystem update, then you will be flashing at least half the memory each time. So bear in mind that the memory could wear out if you use it excessively.
Also consider these useful articles on Raspberry Pi: