Elasticity is far from a solved problem – especially for transportation and logistics companies providing realtime updates.
Prior to 2006, startups finding sudden success had to drive – often in a hurry – to a store like Best Buy to purchase new servers and support an unexpected surge in users. After the founding of AWS in 2006 and the subsequent rise of cloud computing, elasticity and scalability became, in many cases, a matter of clicking into a dashboard and adding resources from wherever you are.
Transportation and logistics companies, however, face two major elasticity challenges if they want to provide realtime updates – both of which demand strategies beyond just adding servers.
- Elasticity is essential because users will, if anything, want realtime updates even more during events that produce increased demand (such as travelers monitoring train station status during a storm or companies monitoring the delivery progress of large orders).
- Elasticity is harder to maintain when providing realtime updates because updates at this speed and scale tend to be resource-intensive and because users also won’t accept data integrity and latency issues.
In a previous article, we explored the three pillars that make a realtime updates system successful. Here, we’ll dive into elasticity.
Why elasticity is important for transportation and logistics apps
Consumers and companies using transportation and logistics services are often dependent on the services themselves and the updates they provide in ways that other industries don’t have to worry about.
Prior to 2013, for example, Twitter was infamous for its outages – so much so that the “fail whale” icon that users saw while Twitter was down became globally recognizable. Despite that, Twitter continued to grow and eventually became one of the most popular social media apps in the world.
Transportation and logistics companies don’t have that same flexibility. While a Twitter user can swipe to a different app while Twitter is down, a traveler trying to find out when the next train will arrive can have their entire day waylaid by an update that isn’t delivered or by a train monitoring app that goes down when users need it most.
Given these circumstances, the promise of providing realtime updates is one that transportation and logistics companies have to take seriously. The systems that support realtime updates need to be so elastic that they can adapt to fluctuations and to do so rapidly enough that users don’t notice a difference.
This reliability also needs to persist across time. If a logistics app provides steady and accurate realtime updates on driver status to its users for months, one outage is still enough to cause customer chaos and potentially convince customers they might need to choose a more reliable provider.
The United States Postal Service, for example, delivered over 13 billion packages during the 2022 holiday season but despite that demand, needed to fulfill the promises it had made to its customers. Similarly, if transportation and logistics companies want to offer realtime updates, then they need to be able to fulfill that need even during moments of peak demand.
Strategies for effective realtime update elasticity
Transportation and logistics companies need to know their users, their needs, and their patterns well. But even if you know the general rate of user engagement, you can’t always predict demand. Sometimes, even predicted storms are more severe than experts guessed, and sometimes, even major scheduled events incur unprecedented surges in users.
There are two approaches to building elasticity with fluctuation in mind:
- With a manual approach, engineers can add extra servers as necessary and test the load of the overall system before a scheduled event.
- With an automatic approach, engineers can build a system that automatically scales up or down based on user demand, ensuring the system can handle expected and unexpected fluctuations.
In both approaches, companies building or buying realtime updates infrastructure need to consider a few things.
- Scalability: At a large scale – especially a global one – elasticity needs to be designed, built, and planned out in advance.
- Reliability: Even temporary downtime will compromise the experience. Support realtime updates with redundancy and backups.
- Security: Providing updates on a large scale also increases the surface area of attack, so security needs to be a priority.
- Cost: Realtime update features can be expensive to build – especially with ongoing maintenance.
Each slice of the system providing realtime updates needs to be considered in terms of elasticity. WebSockets, for instance, a connection protocol, provides its own scalability challenges. Will you scale horizontally or vertically? How will you provide load balancing? Fallback? Connection plans?
Scalable realtime updates with Ably
Elasticity and scalability resist simple solutions. While other companies might be able to adapt to fluctuation by simply adding new servers, companies providing realtime updates can actually damage the experience by adding servers, improving scalability, but then failing to adapt to the data integrity issues resulting from copying data across these new servers.
At Ably, we’ve built a data broadcast solution that is both elastic and highly available. Our solution stands on a mathematically grounded design that ensures capacity and availability – meaning our partners can adapt to meet all of their users’ realtime requirements.
Learn more about our data broadcast solution to see how companies like Metra and Toyota support dynamic, data-driven experiences with Ably.
This is the last in a series of four blog posts about the three pillars for supporting realtime update infrastructure in transportation and logistics apps. In other posts, we look at why low latency and data integrity are so important when you're trying to deliver realtime updates to end users at scale.