The “cut” here can either be server processing time or network time, depending on where the item is cached.
In the search results page, when a query is issued at a high level, two things happen. One is the recall/ranking step, where the most relevant items matching the query are returned. The second step is augmenting the recalled items with additional user-context related information such as shipping costs. eBay now immediately sends the first 10 item images to the browser in a chunk along with the header, so the downloads can start before the rest of the markup arrives. As a result, the images will now appear quicker. This change is rolled out globally for the web platform.
The “cut” here is the download start time for search result images.
Edge caching for autosuggestion data
When users type in letters in the search box, suggestions pop-up. These suggestions do not change for letter combinations for at least a day. They are ideal candidates to be cached and served from a
CDN
(for a max of 24 hours), instead of requests going all the way to a data center. International markets especially benefit from CDN caching.
There was a catch, though. eBay had some elements of personalization in the suggestions pop-up, which can’t be cached efficiently. Fortunately, it was not an issue in the platform-specific apps, as the user interface for personalization and suggestions could be separated. For the web, in international markets, latency was more important than the small benefit of personalization. With that out of the way, eBay now has autosuggestions served from a CDN cache globally for platform-specific apps and non-US markets for eBay.com.
The “cut” here is the network latency and server processing time for autosuggestions.
Edge caching for unrecognized homepage users
For the web platform, the homepage content for unrecognized users is the same for a particular region. These are users who are either using eBay for the first time or starting a fresh session, hence no personalization. Though the homepage creatives keep changing frequently there is still room for caching.
eBay decided to cache the unrecognized user content (HTML) on their edge network (
PoPs
) for a short period. First-time users can now get homepage content served from a server near them, instead of from a faraway data center. eBay is still experimenting with this in international markets, where it will have a bigger impact.
The “cut” here is again both network latency and server processing time for unrecognized users.
Optimizations for other platforms
iOS/Android app parsing improvements
iOS/Android apps talk to backend services whose response format is typically JSON. These JSON payloads can be large. Instead of parsing the whole JSON to render something on the screen, eBay introduced an efficient parsing algorithm that optimizes for content that needs to be displayed immediately.
Users can now see the content quicker. In addition, for the Android app, eBay starts initializing the search view controllers as soon as the user starts typing in the search box (iOS already had this optimization). Previously this happened only after users pressed the search button. Now users can get to their search results faster. The “cut” here is the time spent by devices to display relevant content.
Android app startup time improvements
This applies to
cold start
time optimizations for Android apps. When an app is cold started, a lot of initialization happens both at the OS level and application level. Reducing the initialization time at the application level helps users see the home screen quicker. eBay did some profiling and noticed that not all initializations are required to display content and that some can be done lazily.
More importantly, eBay observed that there was a blocking third-party analytics call that delayed the rendering on the screen. Removing the blocking call and making it async further helped cold start times. The “cut” here is the unnecessary startup time for Android apps.
Conclusions
All the performance “cuts” eBay made collectively contributed towards moving the needle, and it happened over a period of time. The releases were phased in throughout the year, with each release shaving off tens of milliseconds, ultimately reaching the point where eBay is now:
Performance is a feature and a
competitive advantage
. Optimized experiences lead to higher user engagement, conversions, and ROI. In eBay’s case, these optimizations varied from things that were low-effort to a few that were advanced.
Check out
Speed by a thousand cuts
to learn more and be on the lookout for more detailed articles by eBay engineers on their performance work in the near future.