I have a general question about designing system architectures for IoT systems. It appears that the schedules for the LIFX bulbs are stored and run from the cloud. However, that means if there is some kind of transient networking issue between the home and the cloud at the wrong time, the light(s) won’t change.
You could imagine an alternative system design, where after setting up a schedule, code gets pushed down to the individual bulbs themselves and run at the appropriate time. The network can go down, but as long as the bulbs still know what time it is, they can still behave appropriately.
In my research lab, we’re trying to understand the priorities that lead most IoT companies to go with a cloud-based approach to running programs, where reliability is at the mercy of the weakest network link, vs. local architectures. Did LIFX ever consider system architectures that exploited local on-device computation, or was a cloud-based approach the only candidate? What are the trade-offs between one versus the other for a company like LIFX?