• Application Search
  • Comercio y Ventas

MercadoLibre: Impulsando el principal mercado en línea de América Latina

RESUMEN

  • 4
    millones de vendedores
  • 20
    millones de productos
  • 100
    tiempos de respuesta de búsqueda en milisegundos

El desafío

¿Cómo proporcionar a millones de vendedores en un mercado en línea acceso rápido y confiable a toda la información de sus productos?

La solución

Usando Elasticsearch para garantizar una búsqueda rápida con disponibilidad las 24 horas, los 7 días de la semana

Lo destacado de este caso de estudio

Impulsar el comercio electrónico

  • Permitir que los vendedores accedan a los datos críticos del producto
  • Optimizar la administración del producto
  • Ofrecer disponibilidad las 24 horas, los 7 días de la semana

Asegurar la escalabilidad

  • Prestar servicio a 4 millones de vendedores
  • Manejar un crecimiento de 12 millones a 20 millones de listados de productos
  • Agregar servidores en segundos según sea necesario

El principal mercado en línea de América Latina

Con base en Argentina, MercadoLibre es el mercado en línea más grande de América Latina, socio de ventas latinoamericano de eBay, y opera de forma similar a este acercando a millones de compradores y vendedores. La empresa tiene 4 millones de vendedores activos con 20 millones de productos en tiempo real.

"Antes de usar Elasticsearch, usábamos la base de datos Redis", explica Federico Ocampo, el líder de proyecto en MercadoLibre. "Pero Redis no está diseñado para ser un motor de búsqueda. Teníamos que reindexar todos nuestros datos cada vez que queríamos agregar un atributo nuevo. Redis no escalaba y no proporcionaba la alta disponibilidad que necesitábamos".

quote

Desarrollamos nuestras API de búsqueda rápida y fácilmente con Elasticsearch.

Silvina Lucero
Ingeniera sénior de software, MercadoLibre

Reforzando la experiencia de millones de vendedores

Hoy en día, MercadoLibre usa Elasticsearch para la sección de "Mi cuenta" del sitio, en donde los vendedores administran sus productos para la venta. Cuando los vendedores ingresan al sistema, pueden ver una lista de cada producto que están vendiendo (llamada "Mis artículos"), la cual se llena y se puede buscar a través de Elasticsearch. El vendedor puede editar atributos, verificar las cantidades y cambiar precios desde esa lista.

A veces, puede buscar a través de miles de artículos. Un usuario típico de MercadoLibre puede vender unos cuantos miles de productos, pero algunos de ellos llegan hasta los 50 000 artículos. Elasticsearch permite que los vendedores puedan encontrar productos a través de filtros basados en una variedad de parámetros, como tipo de producto, precio, cantidad o fecha en la que se publicó.

"La sección de Mi cuenta del sistema es fundamental", dice Ocampo. "Sin la capacidad de buscar a través de los artículos, los vendedores no podrían ver sus productos, agregar productos nuevos, hacer cambios a las descripciones y ajustar los precios; los vendedores no podrían vender. Todo el sistema quedaría paralizado si no tuviéramos una forma fácil para que puedan buscar y administrar sus artículos".

Para un usuario que vende miles de productos, la búsqueda evidentemente es esencial. Pero incluso el usuario que solo vende algunos artículos también depende de Elasticsearch para administrar esos productos. Elasticsearch no solo permite que los vendedores administren miles de productos, sino que también ayuda a que millones de usuarios gestionen sus negocios sin importar el número de listados de productos. Los ingresos de la empresa dependen directamente de la habilidad del vendedor para administrar los productos que vende, y Elasticsearch lo hace posible.

Todos los front-ends de MercadoLibre requieren las API en el backend. Las API están disponibles para cualquiera que desee crear una aplicación basada en MercadoLibre. Estas pueden usarse para muchos propósitos diferentes, tanto internos como externos. Como Elasticsearch funcionó tan bien, MercadoLibre comenzó a usarlo de otras formas a través de las API. Primero, implementaron una API sobre Elasticsearch para ayudar a que los usuarios busquen preguntas hechas por compradores y respuestas de los vendedores, el método clave de comunicación entre compradores y vendedores antes de la venta. Entonces, crearon una segunda API que ayudaba a que los usuarios busquen los pedidos.

"Desarrollamos nuestras API de búsqueda rápida y fácil con Elasticsearch", dice Silvina Lucero, ingeniera de software sénior en MercadoLibre. " Estos eran dos proyectos nuevos con requisitos muy diferentes, y Elasticsearch se adaptó bien a ambos".

Elasticsearch entrega un rendimiento de búsqueda en tiempo real

"La búsqueda en tiempo real es importante para nosotros, ya que tan pronto como el vendedor publica un artículo nuevo, quiere que aparezca en la lista", explica Ocampo. "Así que necesitamos que ese proceso sea tan rápido como sea posible. Con Elasticsearch, los artículos pueden buscarse 1 o 2 segundos después de que se publican".

El rendimiento de la respuesta de búsqueda también es importante para MercadoLibre. La búsqueda de Mi cuenta recibe 6000 solicitudes por minuto, mientras las otras funciones reciben hasta 2000 solicitudes por minuto, y todos los resultados deben devolverse rápidamente, porque los usuarios de comercio electrónico tienen poca tolerancia para los problemas de rendimiento.

Una característica de Elasticsearch llamada "Asiganción personalizada" permite que MercadoLibre asignar los datos de usuarios a un único shard. En un funcionamiento normal, las búsquedas en Elasticsearch se transmiten a todos los shards en el índice. Los índices de usuarios múltiples suelen contener muchos shards para admitir el