More digital developers are treating the edge as a core component of their application architectures.
 Application design today reflects a desire to meet users where they are. Whether that desire is to create an application used broadly across the Australian/New Zealand geography, or an application with more of a global appeal, users are disparate and distributed, and application architectures must reflect this.
For developers, it makes sense to focus on delivering a consistent experience regardless of where users are located – and edge infrastructure plays a critical role in that.
However, edge infrastructure has not always been treated as a first-class citizen in the software development lifecycle, not traditionally incorporating it into application designs from day one.
For the longest time, edge wasn’t part of the core application architecture – and was instead implemented down the track once developers saw a requirement for it. That requirement manifested in several ways, but generally came down to application performance.Â
Today’s audiences expect engaging and immersive content that plays instantly, yet content is rarely consumed close to where it’s being created.Â
The more popular an application is, the broader its geographical reach and the more disparate demand there is for instant access to content.Â
The edge in application design patterns
Caching in-demand content at edge points of presence (POPs) – closer to end users, as opposed to end users constantly querying the origin servers for content – is one way to deliver a better experience that is more in line with users’ needs.Â
Choosing what gets cached at the edge can have a dramatic impact. Organisations don’t need to cache everything: only the objects such as content that most people use most of the time.Â
Importantly, we’re seeing increased recognition of this, with edge infrastructure increasingly part of application design patterns and practices leveraged for various digital domains. For example, for organisations setting up an eCommerce system based on popular shopping cart technology, well-defined patterns exist for how this kind of system can take advantage of the edge effectively.Â
As more application developers embrace these design patterns, edge becomes a more integrated aspect of application delivery, helping to shape the user experience being offered.
An example of effective incorporation of edge into application architecture design patterns is the use of technologies such as request collapsing. This is particularly useful when an organisation pushes out a new piece of content that proves to be wildly popular but is yet to be cached, and is something we increasingly see being utilised in design and architectural patterns for digital services.
Request collapsing is the practice of combining multiple requests for the same object into a single request to origin, and then potentially using the resulting response to satisfy all pending requests. Its presence is important because the interval between user requests for the same object is often smaller than the time required to fetch the object from the origin servers.Â
For example, the home page of a popular website might be requested 50 times per second, but might take 500ms to fetch from origin, including the network latency and origin processing time. This might not be a problem if the number of concurrent requests is small, but for an object requested 50 times per second, with a 500ms fetch latency, the origin would be processing 25 concurrent requests for the same object before there is an opportunity to store it in cache.Â
This may also mean that where an object is already in cache, the moment it expires or is evicted the origin server will receive a sudden deluge of requests and become overloaded. This prevents the expiry of a very highly demanded object in the cache causing an immediate flood of requests to an origin server, which might otherwise overwhelm it or consume expensive resources.Â
Getting an edge on digital experience
Effective use of edge infrastructure is an important insurance or hedge against rapid growth for digital application and experience developers.Â
We often see startups ride a wave of popularity quickly, requiring them to scale up and scale out to meet exponential demand.Â
Using the edge effectively gives developers much more flexibility in adapting to new requirements. It means that applications – or more specifically, the infrastructure supporting them – does not need to be over-engineered or over-specified ahead of time, when demand for the application or service is not yet known or consistent.Â
Because edge is still a type of infrastructure at its heart, it makes sense that infrastructure teams are often the most well-versed in how to apply it to application architectures.Â
By working with infrastructure teams, together with experienced edge infrastructure providers, on how to really make their applications shine, development teams can set themselves and their digital experiences up for success into the future.