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¶
- Algolia (SaaS de búsqueda) — elegida
- Consultas OData directas al Service Layer
- 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.