Catálogo de Arquitectura
Mapa de dominios y microservicios de la plataforma White Label
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 Dominios
Ver todos (17) →Cart
1 servicioGestión del carrito de compras del cliente: creación, recuperación, actualización y validación del carrito, incluyendo items, mensajes, comentarios y reglas de sustitución.
Customer Address
1 servicioGestión de direcciones del cliente, incluyendo creación, actualización, borrado, búsqueda por código postal y sincronización con sistemas externos.
Customer Devices
1 servicioDispositivos asociados al cliente para notificaciones y funcionalidades específicas por plataforma.
Customer Notifications
1 servicioBandeja de entrada del cliente, notificaciones y popups, incluyendo su estado (leído, oculto, cerrado) asociado al usuario.
Servicios
Ver todos (9) →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.
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.
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.