KUALA LUMPUR : A proper queuing system would have prevented the technical glitches faced by Malaysians attempting to sign up for the latest round of the AstraZeneca Covid-19 opt-in registrations yesterday, said an IT expert.
Yusseri Yusoff said he believed the errors in the Covid-19 Vaccine Supply Access Guarantee Special Committee (JKJAV) website were caused by the lack of a queueing system as a high number of users were attempting to register at the same time.
He said the breakdown of the site caused by the overwhelming number of registrations was likely not due to the configuration of the content delivery network (CDN) Cloudflare.
“It’s likely that without Cloudflare’s rate limits, the API server itself would have been overwhelmed and simply died. In that sense, it could be that Cloudflare was doing the server a favour.”
Yusseri also said that while many netizens complained that they were not able to register due to the Captcha image tests on the site, this was not likely the main reason why they could not book their jabs.
Captcha tests are placed to determine if an online user is a genuine human user and not a bot, but he said this was redundant.
“It looks like a classic problem that any half-baked computer science student should be able to identify, namely: what do you do when a huge number of transactions are about to be requested? You queue them, of course.
“You have to do a queuing system or have a waiting room. Essentially, it’s a way of telling users to take a number and sit down before you will be called.”
He told The Vibes that with a proper queuing system, the website could resolve the issue of handling one million transactions.
He added that although many have criticised the website and JKJAV, there could have been a host of factors that led to yesterday’s mishap – the planning and coding of the website, along with other features and applications working in the background, such as automated links with the MySejahtera app that could have added to the latency of the site.
“And you can’t just throw hardware into the matter as it might not necessarily solve the problem. We are unsure as to what the core problem is, but even if it was because of a free or paid (Cloudflare) service, they (JKJAV) would have suffered (due to overwhelming site visitors).”
He added the system simply broke down because it attempted to honour every request by users, eventually leading to a distributed denial-of-service (DDoS) occurrence.
Unlike the first round of the opt-in registrations of more than 260,000 candidates earlier this month, Yusseri said the current round had nearly one million slots to manage, and with more venues available.
On whether there was widespread use of bots to book the appointment, he said this was unlikely because programming such bots to register for the vaccination required much effort and some knowledge in scripting.
“It’s all about a cost-and-benefit analysis, really. It is not like you can use bots to sell vaccine appointments. It does not make sense to use bots for this purpose.”
Meanwhile, web architect Timothy Teoh said designing for traffic spikes is a challenge and that the litmus test for application design is dealing with traffic spikes, especially for transactional use-cases such as booking AstraZeneca appointments.
In a blogpost, he said the “overarching failure” yesterday was in the design of the database, which prevented the site from being able to handle the surge in users and transactions.
He also suggested data partitioning on the site, as architecting internet-scale databases has been a problem that has been resolved.
“Breaking your data into partitions is hard if you don’t know how the data needs to be accessed – but this was not the case here.
“There are definitely other things that could have been done – a queue system, a waiting area, etc – or not to have a booking system at all.”
By : A. Azim Idris – THE VIBES