You work in a team that deploys IOT devices around the world to do some data collection. These device have very limited hard disk, memory and cpu capacity. You have about 5 million devices deployed, and from time to time you deploy new patch updates to the software running on these devices as much as twice a day. Your only maintain a single backend machine that collects the data from all 5 million devices. Your single backend machine has limited network and processing capacity. And from time to time, some of these devices go off line for as much as a month. The data they collect is also sensitive in the sense that, they need to be reported to the backend within seconds for additional processing otherwise the data becomes useless.
What are some of the issues that could come up with such a system, and how are you going to design around it.