Product Search

dc-wl-groceries-core-search
Repositorio
search product

Servicio responsable de la búsqueda y descubrimiento de productos. Expone APIs gRPC/HTTP para: - Top searches y sugerencias de búsqueda. - Autocomplete y autosuggest combinando términos y productos relacionados. - Búsqueda de productos por keyword, categoría y colección. - Obtención de facets y opciones de filtrado para resultados de búsqueda. - Información de paginación, ordenación y filtros aplicados sobre los resultados.

Servicio bien acotado al dominio de búsqueda de productos. Comparte el modelo de datos de producto con el microservicio de Product, que actualmente se usa para la pantalla de detalle. Existe una discusión abierta sobre consolidar ambas responsabilidades en Search y desmantelar el micro de Product.

Product Search · Contexto de dominio
flowchart LR
  classDef domain    fill:#1e3a5f,stroke:#3b82f6,color:#e2e8f0
  classDef current   fill:#14532d,stroke:#22c55e,color:#dcfce7,stroke-width:2px
  classDef related   fill:#1c1c2e,stroke:#374151,color:#9ca3af
  classDef overscoped fill:#450a0a,stroke:#ef4444,color:#fca5a5,stroke-width:2px
  product["Product Catalog & Search"]:::domain
  dc_wl_groceries_core_search["Product Search"]:::current
  dc_wl_groceries_core_products["Product Detail"]:::related
  product --> dc_wl_groceries_core_search
  product -.-> dc_wl_groceries_core_products
Dominio Este servicio Servicio relacionado Servicio sobrecargado - -▶ Comparte dominio

Dominio

1

Servicios en dominios compartidos

1

Estos servicios operan en al menos uno de los mismos dominios. Si hay demasiados, es otra señal de que los límites de dominio no están bien definidos.

Product Detail Repo ↗

Servicio responsable de la ficha de producto. Expone APIs HTTP para obtener información detallada de un producto, utilizando un modelo de datos muy similar al de Search, pero enriquecido con: - Detalles adicionales del producto. - Ingredientes y atributos específicos. - Recomendaciones de productos relacionados. - Información extendida para la pantalla de detalle.

⚠ Comparte esquema de datos de producto con el servicio de Search, lo que genera solapamiento entre ambos. Actualmente se utiliza sólo para la pantalla de detalles, mientras que Search cubre discovery y listados. Existe una discusión abierta sobre desmantelar este servicio y mover la responsabilidad de detalle de producto a Search, reduciendo duplicación de modelo y lógica.

product overlapping-responsibility candidate-for-merge