Saltar a contenido

ADR-0002 · Algolia para búsqueda de productos y clientes

  • Estado: aceptado
  • Decisores: equipo OMS
  • Fecha de la decisión: no registrada (ADR retroactivo)

Contexto y problema

Los vendedores buscan productos y clientes decenas de veces por hora; la búsqueda tiene que ser instantánea y tolerante a errores de tipeo. Las consultas OData del Service Layer (contains) son lentas sobre catálogos grandes, no rankean resultados y castigan al SAP productivo con cada keystroke.

Opciones consideradas

  1. Algolia (SaaS de búsqueda) — elegida
  2. Consultas OData directas al Service Layer
  3. Motor autohosteado (Elasticsearch / Meilisearch)

Decisión

Los catálogos de productos y clientes se indexan en Algolia; el frontend consulta el índice directamente y el backend mantiene la sincronización (webhooks/eventos + comando batch reindex:customers). Se eligió SaaS sobre autohosteado para no operar ni escalar un motor de búsqueda propio con un equipo chico: el costo mensual de Algolia es menor que el costo de operación de un Elasticsearch bien mantenido.

Consecuencias

Positivas

  • Búsqueda instantánea con typo-tolerance y ranking, sin carga sobre SAP.
  • Cero infraestructura de búsqueda que operar.

Negativas / deuda asumida

  • Consistencia eventual: un dato recién cambiado en SAP puede tardar en reflejarse; la reindexación es responsabilidad nuestra y ya necesitó comandos batch de reparación.
  • Dependencia de un SaaS pago con facturación por operaciones.
  • Los datos de clientes viven (indexados) fuera de la infraestructura propia.