“Ably is a fully-featured platform, and it makes handling realtime a piece of cake. Harnessing Ably technology has freed up considerable time for our engineers to concentrate on streamlining and developing the product. When it comes to scaling the infrastructure we feel in safe hands.”
—Jonathan Alzetta, CTO, Wooclap
The challenges discussed previously in 4 most impactful realtime use cases in EdTech and 6 realtime engineering challenges for EdTech applications relate to capabilities of the realtime communication itself. To deliver this requires infrastructure capable of underpinning a system that can deliver genuinely instantaneous experiences to demanding users, while providing adequate uptime in the region of 99.999%.
Whether you’re using your own or a third-party cloud provider, realtime infrastructure should meet the four key pillars of dependability:
- Predictable performance: Predictability of low latencies to provide certainty in uncertain operating conditions.
- Integrity of data: Guarantees for ordering and delivery to overcome limitations of pub/sub (it was designed with reliable local networks in mind) and to simplify the architecture of your application.
- Scalability and elasticity: ensure your application can deal with short-term spikes in demand as well as longer-term growth as you scale your user base.
- High availability of service: Fault tolerance built into every aspect of infrastructure to survive failures without outages of the realtime system and provide persistent uptime and seamless user experiences.
These four pillars create the foundation you need to deliver on key infrastructure requirements of scalability and elasticity, while maintaining an exceptional quality of experience for those using your application.
The four pillars of dependability
To guarantee critical functionality at scale, we created the following four-faceted, mathematically modelled approach to system design, and we believe these four facets are critical to delivering seamless experiences to demanding end-users.
For any system aiming to provide live, realtime interactions, low latency is key: humans perceive anything that occurs below 200ms as being instant. Low latency can be achieved by moving your data as close to your users as possible, taking advantage of multiple data centers and edge acceleration points. It also means minimizing the bandwidth you use, by optimizing message sizes, and sending only the changes to your data (the delta), rather than redundant whole payloads.
More importantly, you need to ensure the levels of latency in your system are predictable. As someone creating EdTech applications, you want the time it takes for any message to reach its destination to be within a tightly defined range. Otherwise, it becomes challenging to design an application that delivers a true realtime experience.
Integrity of data
Next is the question of integrity. When apps such as chat rely on a sequence of messages that mutually depend on one another, maintaining the end-to-end integrity of them is essential. If messages arrive unordered, the experience is flawed.
App architecture can get quite complex if required to handle ordering at the application level, forcing you to think about and develop around the handling of missed, unordered, or duplicate messages. Can you or your third-party provider offer any guarantees when it comes to delivering every message, doing so in the correct order, and maintaining this integrity at scale?
Scalability and elasticity
As well as being dependable, most EdTech application infrastructure needs to be both scalable and elastic. This is to ensure the application can deal with both short-term spikes in demand, as well as longer term growth as you scale your user base. Make sure your infrastructure can support the necessary number of concurrent connections, and that it can accept sufficient new connections in a short time, to deal with peaks. Some of the things you’ll need to consider include how many channels you can support, how quickly these can be created, and how many messages the infrastructure can handle.
High availability of service
Here, multi-region redundancy plays an important role in providing reliability and availability.
Reliability ensures the system can continue operating, even when one or more components fail. To achieve this, the remaining components need to be capable of supporting your service on their own. If you’re operating a global service, it’s important to understand how many regional failures you could tolerate. For example, at a regional level, how many instance failures per second could you handle?
When people rely on your application, availability is exceptionally important. If you’re engaging a third-party supplier, look for 99.999% uptime guarantee as a bare minimum threshold of acceptability. A high-availability design ensures that required components are quickly and automatically redeployed in the event of a failure. Capacity is critical when it comes to ensuring availability. If one region goes offline and you fail over to another, there needs to be sufficient capacity there to absorb the additional traffic, even under peak loads.
To ensure your network can cater to this type of circumstance, you’ll need to monitor metrics such as:
- Your global percentage of operating load
- The elasticity and distribution of that load
- The maximum number of channels and connections
Having ways to automatically and dynamically provision additional capacity when certain thresholds are exceeded is critical if you’re to ensure exceptionally high levels of uptime.
If you’re using a third party provider, make sure they’re honest in their status reporting. Verify their uptime SLA in detail: can they deliver on their promises even as traffic volumes in your application grow?
Covid-19 has accelerated EdTech’s growth trajectory. There are tremendous opportunities to deliver superior digital learning experiences to students the world over. One key challenge, however, is that EdTech providers need robust realtime foundations to deliver experiences that students and teachers will find appealing and indispensable.
Realtime communication will affect key engineering, systems architecture, product, and business decisions. There’s a lot to consider and a lot to get right, whether it comes to building the realtime capability itself or the infrastructure needed to support it. We’ve outlined the key things any EdTech vendor needs to address, whether building their own realtime capability or selecting a specialist provider to work with.
It’s essential to remember that agility and flexibility are the cornerstones of digital transformation. During the pandemic many institutions leveraged the advantages of cloud computing to support remote learning, collaboration, and digital service delivery. They discovered that cloud computing enabled them to transition to digital-first education quickly, while being more nimble and reactive than ever before.
The same cloud-first philosophy applies to EdTech’s adoption of realtime technology. A proven way to solve this problem is to build on a specialist technology cloud service platform that can meet your realtime needs. By using cloud and cloud-native technologies, EdTech platforms are freed from the burden of supporting aging legacy systems and investing precious time in building more modern solutions. The agility afforded by the cloud helps EdTech platforms rapidly deploy essential new features and services without large infrastructure overhead such they can focus on delivering the best EdTech experiences out there.
In the new education landscape, agility and flexibility make the difference between success and failure, respectively.
Here at Ably, we’ve been solving the hard problems of realtime solution delivery for years. We are an enterprise-ready realtime communication platform, and we have figured out how to efficiently design, quickly ship, and seamlessly scale critical realtime functionality delivered directly to end-users. Our realtime quiz framework for EdTech developers is a great example of that.
If you’d like to discuss your realtime communication needs and how we can help you simplify your engineering, minimize your overheads, and deliver a better user experience please get in touch.
Note: This was the last in our series of blog posts about what needs to be considered when deploying realtime EdTech applications. You can also read about the 4 most impactful realtime use cases in EdTech and the 6 realtime engineering challenges for EdTech applications in our previous blog posts on the topic.