The Many Faces of eCommerce: A Comparison
by James Meickle on April 10, 2014
As software continues to eat the world, ecommerce is starting to reflect the diversity of, well, commerce. But this growing market is also growing more competitive, so there’s a lot of interest in technologies that can help push businesses past razor-thin margins and into profitability. It’s great that “faster sites convert better” has become common knowledge, but stop there and you’re sure to get left behind. When you draft your performance roadmap, it’s critical to unpack that overly broad statement and apply it to the specifics of your situation. What needs to be fast, and how do you get it to be?
Yeah, that’s right – I said traditional! We’ve had ecommerce in our lives for long enough that it’s no trouble at all to imagine the Platonic ideal. Your customers navigate around gallery pages, view items in more detail, add them to their cart, and eventually check out – possibly using an existing account, possibly entering new payment details, and maybe even applying a coupon on the way. There must be a hundred articles about why it’s important to monitor your page speed (and it is!) – yawn. Let’s assume that you know the basics and treat this as our baseline.
Some ecommerce sites are so absurdly niche that you can’t help but wonder who would ever want to buy something from there. But when you really need to find a rainbow turtle cozy with same-day shipping, you’ll be willing to pay out the nose for it, and that’s what keeps these sites in business.
If your site operates like this, you’ll face many of the same performance and scaling challenges as traditional ecommerce sites – indeed, you’re probably running the same software and deploying it in the same way. However, visitors to any one page are so rare that cache expiration and fragmentation are more serious concerns than they might otherwise be. These problems get worse for the sites in this category that rely on having a tremendous inventory to rack up hits. Caching is one of the most common (and most effective) performance improvements, and these considerations directly reduce the effectiveness of it compared to more mainstream sites.
Daily deals and flash sales
I don’t think that anyone would have expected “we’re only going to sell one thing today” to become a serious business model, but the internet is a surprising place. You’d think that being so parsimonious would make performance less challenging, and to some extent, that’s true. You don’t need to worry about bloated gallery pages, or doing lookups that scan hundreds of thousands of items that you used to have in stock. Focusing on one day at a time has its perks!
On the other hand, you never really know what’s going to go viral. Sometimes you’ll list bulk palettes of left-handed baseball mitts and get nary a bite, and sometimes you’ll offer horse head bird feeders that bring the entire internet to your site. Keeping dynamic content performant is hard, and it gets harder when conditions change fast. Users will be incredibly frustrated to find out that you misrepresented how many copies of Season 3 of The West Wing or 10-session massage vouchers that you have in stock! If you’re running a site like this, consider investing in a scalable architecture, or even autoscaling with demand changes. Being able to add capacity in a pinch will give you the edge you need to stay reliable in the face of unpredictable traffic.
Bespoke goods and services
The canonical example of ecommerce is a shopping cart – but think about how many “brick and mortar” establishments don’t have them! Professional services can engage in ecommerce too, and while you won’t be paying your plumber in Dogecoin any time soon, it’s not hard to imagine uploading photos of your flooded basement to get an instant quote. Your site might fit into this category if a large part of your business model depends on getting in touch with live support, uploading your measurements, or making customized items.
The sites for these custom services are, well, custom; because speed can manifest in different ways, making a one-size-fits-all recommendation is impossible. For instance, there have been very impressive results when user requests for information are responses to in minutes rather than hours. But that requires meeting the challenge of building a “live” service, and monitoring capable of keeping up with it. You have a lot more incentive to build such a system if you’re selling big-ticket items, like realty or cars, than you do if you’re selling consumer electronics!
Microtransactions and virtual worlds
In-app purchases are booming in mobile and console games, but it’s a perilous place to run a business. When your transaction performance is embedded within another codebase, you need monitoring capable of disambiguating between the two – particularly if the two services live within different teams or companies (a common practice indeed in the age of APIs).
MMOs have fallen out of the spotlight a little with the rise of mobile devices, but they still have robust links to real-world economies. Even though individual items might be worth pennies, there are millions of them – remember, Mt. Gox started off dealing in virtual trading cards!
With any kind of digital good, an important question you have to answer is where you fall on the balance between access and piracy. If you require users to be connected to an authentication service to make use of their digital goods, you’ve just added a single point of failure to your sales process. Someone isn’t going to pay $5 to get in-game credits if they aren’t convinced they’ll be able to use them!
Where are you at?
This isn’t to say that tried and true optimization tips will become irrelevant any time soon! Frontend performance is still going to matter, and server side caching is still going to be a powerful tool. But whether you’re running one of these new ecommerce archetypes, or something stranger yet, you can expect increasing pressure to perform. Relying on common knowledge means always being a few steps behind, so if you want to compete on speed, you’re going to have to earn those milliseconds. That’s going to require experimentation on the part of your developers, and they’ll be most successful at that if they understand your business model and what challenges will have to be addressed for it to operate at scale.