Research by Microsoft, Pew, and a host of other sources confirms what many have suspected for some time: tech gadgets are having a "shortening" effect on our attention spans. This has numerous long-term implications for our nation's education system and workforce...but in the near-term, it has implications for anyone running an e-commerce site.
These days you can get comparable, if not identical items through multiple sources -- it takes no more effort than a few mouse-clicks. With dwindling attention spans and far less patience on the part of customers, any site performance issue that causes a delay -- even one so slight that it might have been acceptable a few years ago -- can be enough to induce them to go to another source for their purchase. This means that to an increasing degree, the ability to ensure that your e-commerce site runs flawlessly can be one of your biggest competitive differentiators, ensuring that you capitalize on each of your own sales, and also positioning you as an efficient alternative to a competitor who may be experiencing site performance issues.
Website problems lead to lost customers, and major losses in revenue
According to BI Intelligence, $4 trillion worth of merchandise will be abandoned in online shopping carts this year. Furthermore, according to Statista, about a quarter of this abandoned merchandise is due to website crashes, and about a fifth is due to a slow checkout experience. When you look at those two website issues combined, that's well over a trillion dollars! These figures most likely only scratch the surface, as they don't necessarily account for sales that are lost due to faulty transactions (mysteriously disappearing items, twitch-inducing "item no longer in stock" notes, etc.)
Not surprisingly, much of the discourse surrounding shopping cart abandonment involves ways to retain customers who are in danger of leaving, or win customers back who have already left. However, for a quarter of your shoppers, the most effective thing you can do is to simply make sure your site works the way it is supposed to.
Diagnosing poor site performance
Why do sites underperform? Performance problems may be rooted in the front-end e-commerce application, and can be dealt with by caching or tuning the e-commerce app. Once the front end has been optimized, the remaining performance problems are likely due to the database under the e-commerce platform. When the database approaches its limit in terms of CPU and memory, it starts to experience slowdowns, inaccuracies and, eventually, crashes when the transactional database runs out of capacity. To put it simply, the spike in holiday traffic and checkouts can tax e-commerce relational databases beyond their capacity.
For most cloud-era applications, the solution to ensuring that you have enough capacity is simple -- you add more capacity by adding what are referred to as "nodes" to your existing infrastructure. Think of it like a train -- if you have more cargo to transport, you simply add cars. However, when we're talking about the e-commerce site's relational database, adding or "scaling" capacity is more difficult.
Why scaling to performance needs is such a challenge
E-Commerce sites transactions are performed using relational databases, which are designed for online transaction processing and provide the assurances needed for payments and other mission-critical transactions. According to Marc Staimer, analyst at CDS DragonSlayer consulting, when you need more capacity with traditional relational databases, it's not as simple as just adding nodes (scaling out). You have to move to a larger server (scale up), which can be costly and time-consuming, or break the databases into multiple parts.
"Scaling up" is like trying to load a train that consists of one car, and one car only. If you unexpectedly had to ship more cargo than would fit on that train, you'd have to go back and get a bigger car! So, you may ask, why are we powering e-commerce sites with databases that are limited in their ability to scale? Because, initially, many e-commerce merchants choose a free open-source database that doesn't scale out -- like MySQL -- to save money.
Since it's impossible to predict how long it will take before the free relational database they chose at the outset will run out of capacity, it's not until they begin to experience problems that they look for a solution that enables them to meet the increased performance demands. When this happens, they may first choose to break up the database, which is a brute force way to make it bigger for a while -- but it comes at the cost of changing the application and/or making the site more fragile.
And, as Staimer notes, many simply aren't aware there is a preferable alternative to simply trying to make what they have "do a bit more." Today, there are relational databases that are designed to both handle online transactions and scale easily.
To get the right solution, you must ask the right questions
The relational database market is complex and rapidly evolving, so it's extremely helpful to enter the conversation with the database decision maker knowing in advance the questions to ask that will prompt them in the right direction. Here are some things that should be top of mind when making decisions regarding the database that will support your workload:
Will the proposed relational database scale while maintaining performance and ACID compliance?
The term "ACID" describes the database industry's standard properties that ensure transactions are reliable. Frequently the techniques used to scale traditional relational databases -- such as the "breaking up" described earlier -- result in a loss of ACID compliance.
Is the proposed relational database fault tolerant?
In addition to losing ACID, some scaling techniques result in a single point of failure. In other words, it makes it more likely that a single event can shut down your e-commerce platform, adding to the aforementioned "fragility" of your site.
Will application changes be required in order to scale out?
If the data is split to different servers or the updates are separated from the reads, then the application will have to be changed to tell it where to find the data. While this may not sound so bad, it ultimately means that you are applying more overhead, complexity, and cost to your system.
Can we make the relational database larger quickly simply by adding more resources? And, can we also make it smaller again after the holidays?
Agility is important in today's e-commerce market, and the ability to take advantage of revenue generating opportunities requires the ability to quickly change the relational database capacity. Returning to the train analogy, the quickest, easiest way to scale is by adding nodes (cars to the train), and if your relational database allows you to do that, you'll have flexibility to plan and adjust to the actual demand that you need.
This is also a huge price consideration. If you can only deal with increased demand by provisioning massive hardware, you're going to inevitably spend a lot more because you'll be paying for a bunch of space that you'll only use a few times a year. Furthermore, the cost of server nodes goes up faster than the size, so it gets increasingly expensive to simply use bigger boxes.
Many of the techniques employed to scale out a relational database are expensive or reduce fault tolerance or ACID compliance. So you'll want to ensure from the outset that what you're using can be scaled out without compromising in these areas.
Will the proposed relational database handle a mix of shoppers, buyers, and product catalog updates and reports all running at the same time (referred to as a high concurrency workload)?
And, will it do all of this while maintaining fast page loads (low latency)? This is another way of asking how many things can simultaneously be happening on it at once before performance starts to slow. The "latency" at question refers to any delay or lapse between a query and result. This is important because even an imperceptibly small delay on a transactional level will add up quickly, and will get exponentially worse as your site traffic builds causing your page loads, checkout times, and overall customer experience to suffer.
Short attention spans will increase the number of consumers leaving poor performing websites and flocking to e-commerce sites that provide a speedy, smooth, pleasant shopping experience. There's really no mystery to ensuring that your site performs the way it's supposed to, and if you choose the right relational database, you can differentiate your site from competitors and ensure that you're on the receiving end of this migration.
On Twitter? Follow iMedia at @iMediaTweet.
"Businessperson With Shopping Cart And Laptop" image via iStock.