The “edge” is becoming more prominent in the IT industry. Some people use this term for data centres in the same country as a service’s clients, others use it to describe the processing capabilities of mobile devices used in cleaning and aggregating data before their transfer into the cloud. But the edge is much more than that, it is the boundary where the network ends, the place where requests originate and data flows terminate, it is the reason why the network exists in the first place.
From the earliest societies onwards all human advancement stems from collaboration, from forming networks and letting them work to our advantage. This view gives another meaning to the word: edges connect the nodes of the network graph, they are its constituents and what makes it work.
Over time we have learnt to build ever more abstract concepts and systems on the simple and local cooperation of individuals. The cloud is the technical culmination point of this development, it is managed and accessible as if it were a single thing while at the same time being ubiquitous, omnipresent. As an infrastructure piece it offers unprecedented might to anyone with the skill and money to wield it.
To fully realise the power and bring it to bear on a given problem requires a certain mindset, in particular the user needs to understand that the cloud’s desirable properties arise from its distributed nature — computation and storage are dispersed across the globe and within each data center, they can be moved around by the infrastructure provider at any time. This makes it possible to quickly respond to hardware failures, network outages, unforeseen load patterns, and other vagaries. And it requires our software to respond well to these dynamic changes.
Coming from a world where software was mostly written, deployed, and used on single computers, we learnt to transfer the full lifecycle of software to a new locus, it develops and runs within the cloud: we no longer know which computer is hosting it at any given time, we don’t care where data are stored or how the bits travel between services and their clients. This new software is cloud native, it is not just local software executed in a different place but written within entirely different boundary conditions. This frees us from prior constraints while requiring adherence to new principles like location transparency, and it implies a different cost model for consistency — a transactional database becomes a point of failure that needs to be managed and its nicely serialisable programming model comes at the price of limited bandwidth and much higher latency than performing local computations.
Now that computing has been refined such that billions of people carry with them the equivalent of a 1980’s supercomputer we take a look at the opposite end of the spectrum, in scale as in level of abstraction. As the cloud’s economies of scale and automation facilitate the enormous reach of e-commerce and communication platforms — down to experiences tailored to individual users — edge devices form another substrate of magnificent scalability. This supports the fruitful cooperation among humans as well as with a quickly growing number of machines of wildly varying purpose and description, be that machines or pure algorithms.
We will only be successful in using digital tools at this fine granularity if the tools are as dependable as a door handle: I have it here, I interact with it as it is designed, it fulfils its purpose — without being tied to the reachability or availability of things that are elsewhere. This is what distinguishes this new breed of applications from the established paradigm of Cloud Native design. Cloud services remain indispensable for the marvellous jobs they can perform today, but we unlock an entire new realm of software applicability by making its interactions truly local.
The software that governs this collaboration lives in a more restrictive sphere: it can rely only upon its locally stored information in addition to trusting and communicating with a frequently changing set of neighbouring edge devices — the sense of locality implied here is mostly physical. Such applications are edge native, they are born of use-cases that require close collaboration of the utmost reliability, but with the flexibility to react to unforeseen changes in the network neighbourhood.
Local, not decentralised!
decentralisation [mass noun]: the transfer of control of an activity or organization to several local offices or authorities rather than one single one — Oxford English dictionary
Both breeds of native applications described above arise from and thrive within their respective birthplace. It is the nature of the edge that it is where the centre is not, it is local in an essential sense. It is thus incorrect to call Edge Native applications decentralised, as that implies that they were central before and are merely shifted to a different locus.
On a philosophical side note, the original consensus-geared blockchain (like bitcoin) is decentralised, not local: it is a function that was prior offered by central organs of human society and has now been bereft of its locus and is anchored within the storms that drive it forward. The salient point in relation to edge native applications is that its essence still is the single longest chain of blocks, hence it still is central in nature.
In closing, I see it as the greatest IT challenge of our time to establish a proper balance between edge and cloud — between local and central — so that both achievements may propel humankind forward to ever greater knowledge and common wealth, unto the full realisation of our god-given potential.