Dynamic (mobile) network phenomena
The “Ambient-oriented programming in AmbientTalk” (2006) publication (PDF link) describes phenomena inherent to dynamically demarcated (or “mobile”) networks that applications must overcome and proposes a programming language to help write applications that do so.
The (abridged) phenomena are:
Volatile Connections: Devices working together must cope with unstable connections due to wireless limitations and user mobility. Even though connections may break, device tasks must resume when reconnected.
Dynamic Resources: Moving devices affect the availability of remote resources, which depends on device location. This differs from fixed networks where resource availability is explicitly known. In the context of mobile networks, these are "ambient" resources.
Autonomy: Unlike traditional client-server models, mobile networks lack a constant connection to a central server. Each device must function autonomously.
Inherent Concurrency: Unlike client-server setups where clients wait for server responses, mobile networks prioritize device autonomy. This leads to inherent concurrency in software, as waiting for a response would undermine the Autonomy of the application.
It’s an accessible paper and worth reading, especially if interested in offline-first software.