From a revenue standpoint, what would you lose if your site was to go dark for 40 minutes? Where would your customers go? As we close the book on this past holiday season and look back on the e-commerce frenzy, I can’t help but reflect on this loss and how it might be avoided. To put this into context, online Black Friday sales were over $2.7 billion, and total sales over the five-day period starting on Thanksgiving were over $11 billion. That’s a lot of high-stakes traffic. Neiman Marcus’ website was down for most of the day on Black Friday, which for a retailer that does 25 percent of its business online, represents a huge hit to its revenue. Target's site was down for about 40 minutes on Cyber Monday.
Before ObjectWave shifted its focus to work on e-commerce sites, it built the architecture and frameworks for some of the world’s fastest, most resiliently stable electronic trading platforms. E-commerce sites can learn a lot from the way these super-efficient online trading systems are built.
Trading systems are mission critical. While they're engineered to prevent hacking, potential terrorism and a host of other threats, they're most likely the most difficult systems to develop. Performing at mind-boggling millionths-of-a-second speed, they maintain their stability as they handle 20,000 transactions a second. One hundred percent reliability and optimal user experience is delivered, even as tens of thousands of concurrent users are enjoying a seamless experience. Our testing parameters were to measure to a single outage in 40 years!
By contrast, e-commerce transactions are measured in seconds and don't require the level of speed and concurrency of trading systems. Still, delivering acceptable performance to the end user is critical to a good customer experience. The fact that they experience outages at peak times is a huge liability for retailers. Short of building an e-commerce site that has a trading exchange’s level of stability, it's still possible for retailers to meet three requisites, usually overlooked, to strengthen their sites by orders of magnitude. Please keep in mind, this is something collectively outside the retail requisites of user experience and site design.
Of late, the focus on e-commerce site design has been mostly about functionality as well as look and feel, with very little regard to underlying performance. There are three main factors to examine and measure when it comes to engineering more stable systems:
1. Network: Even modern networks today don't always have the capacity to handle traffic at certain times. For the roughly 20 percent of the population living in rural areas, networks are simply slow. Even in cities, networks often don't have the capacity for the types of applications that are being written today. If you’ve ever tried to access data applications during rush hour in Chicago, you’ll understand what I mean. And frequently the infrastructure development lags behind the application development and its needs. The key for e-commerce applications is to understand how to parse code so that reliance on the network is minimized.
2. Hosting solution: Where's your site being hosted? What kind of network is supporting that hosting provider? Where, physically, are you hosting your site — on your own premises or with a hosting provider? These are all relevant discussions, and while they can’t really be qualified unless a retailer is truly a tech company first and a retail company second, you're better off bringing in outside expertise.
Certainly if you’re an online retailer of any size, you’d want to be on a hosted solution. In fact, you’d want to be on one of the major hosting providers — if not on Amazon Web Services, then on another substantial provider. This isn't only for the sake of redundancy and sheer capacity, but also for performance. Such providers are always on an optical backbone. If you look at the internet as a tree trunk with lots of branches stemming off it, the optical backbone is the equivalent of the trunk.
Networks are configured with a fiber optic backbone, usually owned by Level 3 or a similar provider. Using a plumbing analogy, as we get near the end user, the pipe goes through a series of feeds. There’s a major pipe, but by the time it gets to your water faucet, it has gone from a 10-inch main to a quarter-inch tap into your water faucet.
So what does that mean in terms of performance? Today, Level 3 providers’ global capacity is over 42 terabits (TB) per second. That’s fast enough to transfer the entire contents of your one TB hard drive in less than 200 milliseconds. It’s mind-boggling speed. However, the actual service delivered to the customer is a tiny fraction of that capacity. For a home with cable internet, the modem supports a maximum of 38 megabytes per second. Ignoring the difference between uplink and downlink for a moment, transferring that same one TB of data in your hard drive would take 2.3 days. For something like a one gigabyte video (i.e., your average length YouTube video), that’s still over three minutes.
With website performance, it’s a similar kind of thing, only worse. When your hosting provider is on or near the backbone, there’s plenty of bandwidth to serve a large number of concurrent users. On the other hand, if you’re not on that backbone or even close to it, you have to go through what’s referred to as “a lot of hops” to get to that server. You’re basically waiting from hop to hop. That’s where you get the bottleneck — and the bottleneck is relevant. This experience is similar to flying across the country with multiple stops on a small plane, and having to wait for bigger planes to take off first from each airport.
3. Application layer: Good coding and an understanding of the underlying platform come in here. Today’s e-commerce platforms are complex. They reside on the application layer of your multitiered system, and can take time to understand. Using best practices, understanding how to use the underlying platform and leveraging its capabilities can go a long way toward having a site that's optimized for users and easy to extend and maintain.
If the engineers who built your site didn’t use best practices and good coding principles, and/or didn’t understand the underlying platform, the application itself is the bottleneck. However good your bandwidth is, however good your network or host provider is, the fact remains that if the application developer didn’t do it right, the code might be taking too long to run for a variety of reasons. One result: a shopper may be unable to get an item into the basket fast enough, wonder if something’s wrong, and ultimately abandon their cart.
These are all the elements that go into performance.
In the world of trading, these issues are looked at on a continuous basis. Trading firms try to get as close to those trading servers as possible, on the same network node or close. Why? Because it’s about moving the most data as fast as possible, before someone else does. Speed is everything in the trading world.
While raw speed isn't as critical in e-commerce, there’s a fine line between what’s acceptable and what’s not. So if you click on "Submit" on any given website, it might be acceptable to wait a couple of seconds, but any more and the user is wondering if something is wrong. It's better to be instantaneous, or as near to that as possible, because it leaves no doubt in the customer’s mind that the transaction is going through. In the trading world it’s simple. Firms are measuring things in milliseconds and microseconds. And everyone in that field knows the faster the better. The user clicks and gets real-time confirmation that the trade is done. That depends on underlying performance, something not necessarily built into e-commerce sites.
Capacity is informed by the number of concurrent users and the size of your product catalog. A site that has 10,000 SKUs has different architectural needs than a site with 1 million SKUs. The same goes for concurrent users. A site with 100 users has a vastly different need than one with 10,000 concurrent users. The key is to understand these metrics so you can build a solution that will work for you now and into the future as your e-commerce business grows.
There are many things you can do to make certain that people are getting the optimal experience when it comes to performance. For example, let’s say that in a given year you analyze what's selling, to whom and what products sell best with other products. You know there's a subset of your product catalog that sells the most — maybe there are 10 items that represent 30 percent of your online sales. With this knowledge, there are certain things you can do to optimize people’s ability to order those items. For example, you can configure your site so that people can get on and off it quickly. If you get them to order the things that seem more optimal, essentially you’ve enhanced their experience. While it’s hard to quantify, there are things you can do to make it a better online experience for the customer.
We’ve just talked about three elements that predicate optimum performance: network, hosting provider, application layer. Once you have these right, you can assume your user experience will be optimal. Otherwise, you could have this great, well-designed, well-thought out e-commerce site, minus a certain function that the developers didn’t understand. Now your well-thought out website is failing because consumers don’t like delays, suspect something is wrong and abandon the cart. Bottom line: There has to be a process that mitigates this risk and provides assurance that the site is built to specifications beyond which most e-commerce systems can perform. In the end, these three underlying facets separate an e-commerce site that refuses to be brought down from one that fails under stress.