One of the most challenging moments any online application faces, is when it becomes so popular that it has to handle tens of thousands of requests per second, without slowing down. Scalability is really hard to achieve. It is where many aviation start-ups fail. We at RosterBuster have recognized this and have successfully countered it by investing in our technology.
I have been developing applications at scale for almost 20 years. As the original developer of Online Soccer Manager, I had to design an app that scaled from a group of friends to 5 million monthly users.
In comparison, RosterBuster’s challenges may seem modest. But running the leading roster app for airline crew, with a userbase of well over 300k and with limited resources, is no easy feat either. Think of all the data involved that airline crew relies on, on a day-to-day basis. Not to mention the constant growth we have to manage.
Other crew apps don’t have to cope with this kind of scale. If they did, they would undoubtedly fail. Why? Because it is really hard to process a lot of requests consistently and reliably. It is an exponential problem. Databases get packed with millions of records that need to be searched in an ever faster rate.
A Skilled Development Team
To be able to overcome this, first and foremost an agile team of skilled software developers is essential. The team needs a thorough understanding of the principles of a scalable and maintainable architecture. At RosterBuster we have set up several teams in The Netherlands and India.
We have taken care to assemble them with a mix of talent and experience. As you probably know in IT developments go really fast. We can’t just rely on experience, because most technologies are on the market for just a few years. But experience ís required to see the bigger picture and reduce complexity, which are the key to reach long term goals.
But being a scrum team of ace developers is not enough these days. With the rise of Infrastructure as a Service and Platform as a Service, devops has become more important and is now an essential skill in any back-end software development team.
RosterBuster’s architecture is hosted in the cloud. We employ cloud services vigorously, because it allows us to scale and serve many users reliably, while keeping costs in check. We have chosen Amazon Web Services (AWS), because it is by far the largest, most proven cloud architecture available.
But putting servers in the cloud is not enough. The architecture of the application needs to be able to leverage the benefits of IaaS and PaaS to be fast, to scale and to be cost effective.
Cloud Enabled Architecture
To be able to meet modern day’s cloud computing requirements, we had to completely rebuild our API’s and roster processing engines. This has been a huge project for us the past year, and we’re set to complete it this year. But already, the results are well worth the effort.
Patterns we use include the pipes and filters pattern, the queue-based load leveling pattern, throttling and the job observer pattern. Legacy applications don’t make use of these patterns, which limit their scalability.
Our services are layered and split into small components and micro-services. This allows us to use resources in an efficient way and to scale up when there is extra pressure on the servers, for example when new rosters are published. In the past, these moments were sometimes stressful and kept us awake at night. Now we have tooling in place to load balance and delay non-essential services, so we can handle the extra traffic more easily.
Ready For Growth
A complex system like this needs constant attention. We need to stay alert on changes as our growth continues. After we finalize the project, we’ll keep making improvements. I am very proud of what has been achieved by the team since the founders of RosterBuster, a British Airways pilot and an air traffic controller, did their amazing job of creating the original app.
As we are now welcoming not only end users, but also enterprise customers, we’re instilled with the confidence that we can build on a strong foundation, that will allow us to grow even more in the future.