Catálogo de Arquitectura

Mapa de dominios y microservicios de la plataforma White Label

17 dominios 9 servicios
White Label · Mapa Global
flowchart LR
  classDef domain     fill:#1e3a5f,stroke:#3b82f6,color:#e2e8f0
  classDef service    fill:#1c1c2e,stroke:#4b5563,color:#cbd5e1
  classDef overscoped fill:#450a0a,stroke:#ef4444,color:#fca5a5,stroke-width:2px
  classDef underreview fill:#1c1917,stroke:#f59e0b,color:#fcd34d
  subgraph DOMAINS["Dominios"]
    direction TB
    cart["Cart"]:::domain
    customer_address["Customer Address"]:::domain
    customer_devices["Customer Devices"]:::domain
    customer_notifications["Customer Notifications"]:::domain
    customer_orders["Customer Orders"]:::domain
    customer_preferences["Customer Preferences"]:::domain
    customer_profile["Customer Profile"]:::domain
    geo_and_stores["Geo & Stores"]:::domain
    iam["Identity and Access"]:::domain
    loyalty_account["Loyalty Account & Movements"]:::domain
    loyalty_benefits["Loyalty Benefits"]:::domain
    loyalty_offers["Loyalty Offers"]:::domain
    loyalty_prizes["Loyalty Prizes"]:::domain
    product["Product Catalog & Search"]:::domain
    promotions["Promotions Engine"]:::domain
    remote_config["Remote Config"]:::domain
    shipping["Shipping"]:::domain
  end
  subgraph SERVICES["Microservicios"]
    direction TB
    dc_wl_groceries_core_auth["Auth"]:::service
    dc_wl_groceries_core_cart["Cart
⚠ 2 dominios"]:::overscoped
    dc_wl_groceries_core_customers["Customers
⚠ 8 dominios"]:::overscoped
    dc_wl_loyalty_core["Loyalty
⚠ 3 dominios"]:::overscoped
    dc_wl_groceries_core_notifications["Notifications (Remote Config Bridge)"]:::service
    dc_wl_groceries_core_products["Product Detail"]:::service
    dc_wl_groceries_core_search["Product Search"]:::service
    dc_wl_groceries_core_engine_promotions["Promotions Engine"]:::service
    dc_wl_groceries_core_session_manager["Session Manager"]:::service
  end
  iam --> dc_wl_groceries_core_auth
  cart --> dc_wl_groceries_core_cart
  shipping --> dc_wl_groceries_core_cart
  customer_profile --> dc_wl_groceries_core_customers
  customer_address --> dc_wl_groceries_core_customers
  customer_preferences --> dc_wl_groceries_core_customers
  customer_notifications --> dc_wl_groceries_core_customers
  customer_devices --> dc_wl_groceries_core_customers
  loyalty_prizes --> dc_wl_groceries_core_customers
  geo_and_stores --> dc_wl_groceries_core_customers
  customer_orders --> dc_wl_groceries_core_customers
  loyalty_benefits --> dc_wl_loyalty_core
  loyalty_account --> dc_wl_loyalty_core
  loyalty_offers --> dc_wl_loyalty_core
  remote_config --> dc_wl_groceries_core_notifications
  product --> dc_wl_groceries_core_products
  product --> dc_wl_groceries_core_search
  promotions --> dc_wl_groceries_core_engine_promotions
  iam --> dc_wl_groceries_core_session_manager

Servicio responsable de la autenticación en el sistema. Genera y valida access tokens y refresh tokens, y gestiona credenciales de sistemas externos como VTEX, almacenando cookies y sesiones en la base de datos de identidad.

Servicio responsable del carrito de compras del cliente. Expone APIs gRPC/HTTP para: - Crear y recuperar carritos por identificador y usuario. - Añadir, actualizar, parchear y eliminar items del carrito. - Gestionar mensajes y comentarios asociados al carrito y a items específicos. - Actualizar datos de envío del carrito (dirección, tipo de entrega, tipo de dirección). - Validar el carrito en base a reglas de negocio, grupos de cliente y contexto de entrega. - Configurar el tipo de sustitución de productos en caso de falta de stock.

⚠ Servicio actualmente en proceso de revisión y reimplementación completa, con el objetivo de acotar mejor sus responsabilidades y alinear el modelo de carrito y envío con los dominios de Cart y Shipping. Parte de la lógica de selección de tiendas/sellers se apoya en funcionalidades existentes en el servicio de Customers.

cart shipping under-review candidate-for-refactor
Customers Repo ↗

Servicio central de cliente que concentra múltiples responsabilidades. Expone APIs para: - Gestión del perfil de cliente (creación, actualización, desactivación, existencia). - Términos y consentimientos (OneTrust / Conta). - Notificaciones e inbox del cliente (incluyendo popups y su estado). - Direcciones del cliente y sincronización con sistemas externos como VTEX. - Preferencias (dietarias, marketing, suscripciones, tabaco). - Dispositivos asociados al cliente. - Historial y detalle de órdenes e invoices. - Información geográfica y de tiendas, consumida desde CMS/servicios externos. - Lógica para determinar tiendas/sellers que pueden despachar a una dirección, reutilizada por otros servicios a través de este endpoint.

⚠ Servicio sobrecargado que agrupa múltiples dominios funcionales. Actualmente en proceso de revisión para descomponerlo en varios microservicios más pequeños y alineados con límites de dominio claros.

customer over-scoped candidate-for-split under-review
Loyalty Repo ↗

Servicio central del dominio de fidelidad. Expone APIs gRPC/HTTP para: - Resumen de beneficios del cliente (puntos, nivel actual, progreso, categorías). - Consulta de niveles de loyalty y su configuración. - Gestión de la cuenta de cashback (Cencopay), incluyendo saldo, flags y bloqueos. - Historial de movimientos del programa de lealtad y pagos asociados. - Catálogo de ofertas de loyalty, categorías, vitrinas (showcases) y ofertas disponibles por nivel. - Activación, clip y unclip de ofertas vinculadas al cliente.

⚠ Existen varias APIs especializadas (benefits, Cencopay, offers) que podrían evolucionar en microservicios separados en el futuro, pero hoy se gestionan en un único microservicio.

loyalty benefits cashback offers