• Application Search
  • Retail

MercadoLibre: Powering Latin America's premier online marketplace

AT A GLANCE

  • 4
    million sellers
  • 20
    million product listings
  • 100
    millisecond query response times

The Challenge

How do you provide millions of sellers in an online marketplace quick and reliable access to all of their product data?

The Solution

By using Elasticsearch to guarantee fast search with 24/7 availability.

Case Study Highlights

Drive e-commerce

  • Enable sellers to access critical product data
  • Streamline product management
  • Offer 24/7 high availability

Ensure scalability

  • Serve 4 million sellers
  • Handle growth from 12 million to 20 million product listings
  • Add servers in seconds as needed

Latin America's Premier Online Marketplace

Based in Argentina, MercadoLibre is Latin America's largest online marketplace, eBay's Latin America sales partner, and operates similarly to eBay, bringing millions of buyers and sellers together. The company has 4 million active sellers with 20 million live product listings.

"Before using Elasticsearch, we used a Redis database," explains Federico Ocampo, Project Leader at MercadoLibre. "But Redis is not meant to be a search engine. We had to reindex all of our data every time we wanted to add a new attribute. Redis did not scale and it did not provide the high availability we required."

quote

We develop our search APIs very quickly and easily with Elasticsearch.

Silvina Lucero
Senior Software Engineer, MercadoLibre

Empowering Millions of Sellers

Today, MercadoLibre uses Elasticsearch for the "My Account" section of the site, where sellers manage their products for sale. When sellers log into the system, they can view a list of every product they are selling – called "My Items" – which is populated and searchable via Elasticsearch. From that list, the seller can edit attributes, check quantities and change prices.

Sometimes a seller must search through thousands of items. A typical MercadoLibre user will sell a few thousand products, but some sell as many as 50,000 items. Elasticsearch enables sellers to find products by filtering based on a variety of parameters, such as product type, price, quantity or date the item was published.

"The My Account section of the system is critical," says Ocampo. "Without the ability to search through their items, sellers would not be able to view their products, add new products, make changes to the descriptions, and adjust prices – sellers would not be able to sell. The entire system would be paralyzed if we did not have an easy way for sellers to search and manage their items."

For a user selling thousands of products, search is obviously essential. But even the user selling only a few items still depends on Elasticsearch in order to manage those products. Elasticsearch not only empowers sellers to manage thousands of products, but also helps millions of users conduct their business regardless of the number of product listings. The company's revenue depends directly upon the seller's ability to manage the products they are selling, and Elasticsearch makes this possible.

All MercadoLibre front ends call APIs on the backend. The APIs are available to anyone who wants to build an application based on MercadoLibre. These APIs are can be used for many different purposes, both internal and external. Because Elasticsearch worked so well, MercadoLibre began to use it in other ways via APIs. First, they implemented an API over Elasticsearch to help users to search through questions asked by buyers and answers provided by sellers – the key method of communication between buyers and sellers prior to a sale. Then, they created a second API that helps users to search orders.

"We develop our search APIs very quickly and easily with Elasticsearch," says Silvina Lucero, Senior Software Engineer at MercadoLibre. " These were two new projects with very different requirements and Elasticsearch has adapted well to both of them."

Elasticsearch Delivers Real-Time Search Performance

"Real-time search is important for us, because as soon as the seller publishes a new item, they want it to appear in the list," Ocampo explains. "So we need that process to be as quick as possible. With Elasticsearch, items are searchable within one or two seconds after being published."

The performance of query response is also important to MercadoLibre. The My Account search receives 6,000 requests per minute, while the other functions receive up to 2,000 requests per minute, and all the results must be returned quickly because e-commerce users have low tolerance for performance issues.

An Elasticsearch feature called "Custom Routing" enables MercadoLibre to route user data to a single shard. Under normal operation, searches in Elasticsearch are broadcast to all shards in the index. Multi-tenant indices often contain many shards to support future growth, but this can impact query latency due to the overhead of searching many, many shards simultaneously.

quote

With Elasticsearch, items are searchable within one or two seconds after being published.

Federico Ocampo
Project Leader, MercadoLibre