The transportation and logistics industries contain much more complexity than the average consumer would guess. When they build apps, they need to provide a simple, intuitive experience supported by a complex and most often unseen system of vehicles criss-crossing neighborhoods, states, and countries, supported by employees and systems working from behind the scenes to orchestrate the processes necessary to make this all work smoothly.
In Richard Cook’s treatise on the failure of complex systems, he writes that, for systems like the ones that support transportation and logistics, “the processes involved in the system are themselves intrinsically and irreducibly hazardous.”
Complex systems – often because they’re inherently dense and tightly coupled – tend to suffer from domino effects as one problem causes another and another. If a company is transporting important equipment across the country, even minor delays can cascade into major delays if they’re not minimized.
That’s why transport and logistics companies try to get the most up-to-date information as quickly as possible and that’s why, if they’re relying on realtime updates themselves or sending realtime updates to their customers, the standards for latency are so strict.
In a previous article, we covered the general value of realtime updates to these industries and showed the three pillars of an effective realtime update system. Here, we’re going to cover latency in-depth and explain how best to handle it.
What do we mean by low latency and what are the parameters for realtime updates?
Latency is how people refer to and measure the amount of time it takes for data to travel from the backend of a service to the device of an end user.
Developers have always worked on reducing latency but in most contexts, there are almost inevitably moments of high latency that aren’t – as long as they don’t last very long – too costly. If it takes a few extra seconds for a user to load Facebook, for example, users won’t suddenly decide to switch platforms. But if a logistics app offers realtime updates and a company builds its processes around those updates, even relatively low but still higher than expected latency can effectively break the feature.
The high-stakes nature of realtime updates surprises some companies, but in this context, the value of a “live” update can evaporate due to latency issues alone. A fresh update can allow a logistics company to keep deliveries on track but a delayed update – even if the information remains relevant and accurate – can mislead more than it helps.
That’s why companies providing realtime updates measure latency by the millisecond. For realtime updates to feel instantaneous, latencies need to be in the low hundreds of milliseconds.
Two reasons why low latency is essential for realtime transportation and logistics apps
Maintaining latency levels of 100ms or less is hard. Maintaining those latency levels consistently over time is harder. And maintaining those latency levels over time and despite fluctuations in users and differences in networks and devices is harder still.
For apps with realtime updates, latency has to be low and remain low enough, consistently enough, that users can rely on the experience always feeling realtime.
That consistency is important because users who are promised realtime updates will expect low latency even in circumstances that make latency harder to manage. If, for example, a logistics app offers a dashboard that tracks vehicle routes and a user needs to adjust and monitor routes to adapt to a surprising change, realtime updates need to keep up with both the preexisting needs and the updates that inform further fine-tuning.
Below, we’ll explain the two primary reasons that make the need to maintain low latency levels important.
1. The brand promise of realtime
Most users can’t tell you what precise speed they expect when they ask for realtime updates, but research has shown an unconscious truth: Latency levels need to be in the low hundreds of milliseconds for an update to feel realtime.
If you’re building a transportation or logistics app with a realtime updates feature, you won’t have as much flexibility as you would with a feature that promises “efficiency” or “ease of use.” Many features benefit from a subjective sense of value – what is an “intuitive” interface, really? – but realtime updates truly need to feel instantaneous.
But as companies aim for these latency levels, they need to plan how to meet these expectations and keep meeting them over time. If latency gets high – even temporarily – users will be dissatisfied and the promise of realtime will be broken.
2. Expectations of scalability
The need for scalability makes latency an even more difficult challenge. When a product promises a live experience, users expect to get that experience at any time and from any location.
Even if, for example, an unexpected storm comes in and delays many more vehicles than usual and a logistics system has to send many more updates than usual, users will still expect a realtime pace. If anything, events like these – with surges in demand and requests – are often when users expect realtime updates the most.
How transportation and logistics apps can deliver low latency
Maintaining low latency is difficult but it’s an essential part of providing effective realtime updates. The main decision companies face is deciding whether they have the resources and time to build their own realtime updates system or whether they should find the best third-party system.
With either choice, companies need to consider a few factors:
- Coverage: Distributed core data centers and edge acceleration points-op-presence (POPs) are often necessary to ensure low latency levels for global and round trips.
- Message routing: Intelligent routing is frequently necessary to deliver messages with the fewest amount of network hops.
- Fluctuating message payloads: Message payloads frequently fluctuate – both in terms of message size and message amount. New data added to a feed of other information can make it difficult to deliver updates quickly.
- Efficient encoding: Inefficient encoding processes can increase latency by slowing down a system’s ability to translate data into a transmittable format and back again.
The Ably team is an expert in these challenges and the many edge cases that often result from them. We know from experience that building a system to support realtime updates involves too much stress and expense for most companies, especially in terms of upfront investment and ongoing maintenance. That’s why we’ve done it for you.
This is the second in a series of four blog posts about the three pillars for supporting realtime update infrastructure in transportation and logistics apps. In the other posts, we look at why data integrity and elasticity are so important when you're trying to deliver realtime updates to end users at scale.