If you live in the United States and you’ve tried signing up for Health Care Insurance you’ve experience first-hand the frustration of slow online registration software. Today in the news, I read that the Obamacare website can handle 17,000 people an hour according to CMS. What kills me is that the next line in the article says, “with almost no errors”. (source: http://bloom.bg/1b4UcJE) How can any errors be acceptable? With the millions of dollars that have been spent on the Obamacare website, I would think that there would be enough checks and balances built in that would make the chance of an error practically extinct.
One of the fixes to the Obamacare website includes speeding up web pages so that insurance plans are displayed in seconds instead of minutes. This is important to get right. You’ll notice that google.com has a very uncluttered and very fast loading start page. Take a look at the “view source” sometime. They have even eliminated any unnecessary spaces within their html code.
Here’s a neat tool to see how fast your registration pages are loading. (http://tools.pingdom.com/fpt/) I like this tool because it breaks down the various steps and reports the time each step takes when a webpage launches. (i.e. the steps are, DNS lookup → SSL handshake → Connect to Server → Transport posted data/content to the server → Server’s time to process → Server transporting content back to browser)
I’ve also discovered that the following items have a big impact on the speed of your online registration pages:
- How many simultaneous people there are trying to register.
- How many questions there are on your registration form and how fast the form has been optimized to load.
- Whether the registration code is compiled, e.g. *.dll (which is faster) or interpreted, e.g. *.asp/*.php (which is slower).
- How many web servers the ASP (i.e. Application Service Provider) has in their web server farm.
- How many database servers the ASP has in their topology. And more specifically, how many replicated slave db servers there are off of the single master db server. Replicated db slave servers are great for speeding up database queries since “read-only” requests can be done from a replicated db slave instead of the “master” db server. The “master” should only be used for commands that write or change data. All of the database queries need to be optimized so that they retrieve data quickly.
- Whether the webservers and database servers are physical or virtual. Physical servers are faster, but require more effort to keep up to date and backed up. So in my opinion, the ASP is better off to use virtual servers except for the “master” db server. The “master” should be a physical server as it often becomes the rate determining step.
Web page loading speed is proportional to your “rate determining step”. Every ASP has built their technology differently. So the challenge each ASP has is how to:
- identify the rate determining step in their specific online registration software,
- how to eliminate the “slowness” within that rate determining step and then how to identify the next rate determining step.
To identify the rate determining step, you or the ASP are going to need to perform “load testing”. You’ll need a good load testing piece of software like, Soasta, for this purpose. (http://bloom.bg/HuvuJn)
Fig 1. Soasta Cloud Testing Software
At the ASP I work at, we’ve realized that no matter what hardware, software or topology you have, there will always be a rate determining step hiding on you somewhere. Not even the Healthcare.gov’s website has enough money to eliminate this speed inhibiting step. So you better get a handle on where your speed limits are and what your rate is determined by. How many people can register at your site at a given moment? Do you know? Shouldn’t you know? What will happen if too many people come to your site?
Every piece of online registration software needs to have a “governor”. This governor will protect you and your clients from going through the registration process, too fast. At e-RegisterNow.com, we set limits on each client so that if their speed limit is reached, a “red stop light”, see Fig 2., appears and asks people to try again at another time. This “stop light” page protects e-RegisterNow against errors and client frustration which can be caused by page loading delays and messed up transactions. The time you ask people to return can vary depending on the load at the time. This approach is similar the “fast pass” approach at Disney parks.
Fig 2. A Red Stop Light Sign
As I close here, I must confess I learned this speed lesson the hard way. We were selling tickets for a popular consumer show where registration started with a bang at 12 noon on the button. Unfortunately, we also had a backup beginning at the same time. The e-RegisterNow registration service was overwhelm in less than 5 minutes and for the next 30 minutes, transactions were broken up and registrants experienced long waits. Well it took 2 months, after that 30 minute debacle, to sort everything out. We had to email out by hand tickets, fix broken transactions and explain how this happened. At this moment, I realized that we needed to identify our rate determining step and have a governor on the registration process, i.e. a stop sign in case we ever again exceed our limits.