What do mobile, IoT and edge architectures have in common that data-centre architectures do not?
Show the full answer Hide the answer
What is being tested
Whether you can identify the shared constraints rather than listing surface differences.
The shared constraints
1. Clients cannot be upgraded on demand. A mobile app from two years ago is still running; a sensor in a field may never be updated. Every server change must be compatible with every version in the wild — which makes backward compatibility a structural property rather than a courtesy, and means a breaking change cannot be fixed by deploying.
2. Connectivity is intermittent. The design must work while disconnected and reconcile afterwards. That makes synchronisation and conflict resolution a core concern rather than an edge case, and it is what most designs get wrong by assuming continuous connectivity.
3. Resources are constrained — battery, memory, bandwidth, processing — so what is sent and how often is an architectural decision, not a tuning one.
4. The fleet is large and heterogeneous, with devices in different states on different versions in different conditions.
5. Physical access is limited or impossible, so recovery must be remote and must survive a failed update. A bad update to a fleet is unrecoverable in a way a bad server deployment is not.
The recurring design decisions
What is decided locally and what centrally. Local decisions work offline and respond immediately; central decisions are consistent and can use more information. Most systems need both, with an explicit statement of which is which.
How state converges. Local writes plus intermittent connectivity means conflicts. Options: a single authoritative writer per record, conflict-free data types where the structure allows, or explicit conflict surfacing.
Last-write-wins by device clock is the trap — device clocks are unreliable and the losses are silent.
How updates are delivered safely — staged rollout, verification, and a recovery path that survives a failed update.
What is sent. Aggregate and sample at the device rather than sending everything and filtering centrally, because bandwidth and battery cost per byte.