Figure 4 illustrates an IoT system 400 in one embodiment. The IoT system 400 comprises IoT devices 402 communicatively coupled via a wide area network 404 to a server system 406 via an optional proxy server 410. The network topology of the IoT system 400 is a partially connected mesh network. The IoT devices 102 are organized into groups of partially connected meshes, and communicate within a mesh group without interacting with the server system 406 or proxy server 410. This type of network topology may be found in environments in which the IoT devices 402 are spread apart and battery powered, so that they can only communicate using relatively short-range wireless communications (e.g., near-field communications). In such environments a particular one of the IoT devices 402 may only be within communication range of a nearest neightbor. 

One or more of the IoT devices 402 acts as a gateway device 408 providing a communication channel to the server system 406. The IoT devices 102 that are not the gateway device 408 communicate directly with the gateway device 408, or via the proxy server 410, which communicates on their behalf and on its own behalf with the server system 406. The optional proxy server 410 may improve the performance of the IoT system 400 by mirroring some or all of the state of the server system 406 and thus enabling the IoT devices 402 to communicate without creating bandwidth or incurring the latency of the wide area network 404. The optional proxy server 410 is typically colocated at a facility or nearby facility to where the IoT devices 402 are located.