Figure 3 illustrates an IoT system 300 in one embodiment. The IoT system 300 comprises IoT devices 302 communicatively coupled via a wide area network 304 to a server system 306 via an optional proxy server 310. The network topology of the IoT system 300 is a partially connected mesh network. The IoT devices 102 are organized into groups of fully connected meshes, and communicate within a mesh group without interacting with the server system 306 or proxy server 310. In other embodiments, there may be one fully connected mesh of the IoT devices 102, although this requires that each of the IoT devices 102 is in direct communication range of all of the others.
One or more of the IoT devices 302 acts as a gateway device 308 providing a communication channel to the server system 306. The IoT devices 102 that are not the gateway device 308 communicate directly with the gateway device 308, or via the proxy server 310, which communicates on their behalf and on its own behalf with the server system 306. The optional proxy server 310 may improve the performance of the IoT system 300 by mirroring some or all of the state of the server system 306 and thus enabling the IoT devices 302 to communicate without creating bandwidth or incurring the latency of the wide area network 304. The optional proxy server 310 is typically colocated at a facility or nearby facility to where the IoT devices 302 are located.