Skip to main content

3. 📘 DESCRIPCIÓN GENERAL DEL CONTEXTO Y ALCANCE

3. Descripción General del Contexto y Alcance

El presente proyecto tiene como objetivo principal la automatización del procesamiento e ingesta de datos maestros y comerciales clave del Sistema de Gestión del Ciclo de Vida de Productos (SPPD) hacia el sistema de ventas (Power Street). Esto incluye la sincronización de información de productos, listas de precios, listas de descuentos (precios especiales) y promociones. Actualmente, SPPD gestiona estos datos y es crucial que Power Street refleje esta información de manera precisa y oportuna para asegurar la correcta ejecución de ventas, aplicación de políticas comerciales y evitar errores manuales.

La solución implementará un flujo de integración robusto y escalable basado en un patrón de arquitectura de publicación/suscripción. SPPD publicará eventos de cambio (altas, modificaciones, bajas) para cada tipo de entidad (productos, precios, descuentos, promociones). Power Street se suscribirá a estos eventos para actualizar su catálogo y motor comercial.

El sistema origen (SPPD) gestionará el ciclo de vida de cada transacción de sincronización, incluyendo la asignación de un ID único, el registro de metadatos (incluyendo el tipo de entidad y operación), la gestión de reintentos automáticos (hasta 3 intentos) y el procesamiento de respuestas del sistema destino. Se implementará una máquina de estados en SPPD para controlar el flujo de cada transacción. Adicionalmente, SPPD contará con un dashboard de operaciones que proporcionará visibilidad completa sobre el estado de las sincronizaciones, permitirá la visualización de detalles y la corrección manual de transacciones fallidas, reseteando su contador de reintentos.

3.1 Descripción General del Proyecto

El proyecto "Sincronización de Productos SPPD - Power Street" tiene como objetivo establecer un mecanismo robusto y resiliente 🛡️ para mantener la consistencia de la información de productos entre:

  • 🏭 SPPD (Sistema de Gestión del Ciclo de Vida de Productos)
  • 🛒 Power Street (Sistema de ventas)

Se implementará un patrón 🧩 publicación/suscripción, donde:

🔹 SPPD publica eventos: altas, modificaciones y bajas de productos.
🔹 Power Street se suscribe: y actualiza su catálogo de productos.

⚙️ Características clave del sistema origen (SPPD):

  • 🔑 Asignación de ID único por transacción
  • 📝 Registro de metadatos
  • 🔄 Hasta 3 reintentos automáticos
  • 🧠 Control por máquina de estados
  • 📊 Dashboard de operaciones con:
    • Visibilidad total 👁️
    • Corrección manual 🛠️
    • Reenvío controlado 🔁

📥 Power Street:

  • Consume mensajes 📦
  • Procesa productos en su BD 🗃️
  • Emite respuestas detalladas 📤

🌱 El diseño permite que en el futuro otros sistemas también puedan integrarse como origen o destino usando este modelo.


3.2 Descripción de Escenarios y Seguimiento

📘 Escenario 1: Creación Exitosa de Lista de Precios

  1. SPPD (Usuario - Ejecutivo Planeación Comercial):
    Crea una nueva lista de precios en SPPD.

  2. SPPD (Sistema):

    • Genera un mensaje de tipo "Creación de Lista de Precios".
    • Asigna un ID de transacción.
    • Define eventType: PRICE_LIST_CREATE.
    • Incluye el payload de la lista, systemOrigin: "SPPD", e intento: 1.
    • Publica el mensaje en el topic events.v1.
    • La máquina de estados transita al estado ENVIADO_A_BROKER.
  3. Message Broker:
    Entrega el mensaje al sistema Power Street.

  4. Power Street:

    • Consume el mensaje.
    • Procesa y almacena la nueva lista de precios.
    • Genera una respuesta:
      • eventType: PRICE_LIST_CREATE_RESPONSE
      • Estado: ÉXITO
      • Incluye ID de transacción, tiempo y fecha.
    • Publica la respuesta en el topic responses.v1.
  5. SPPD (Sistema):

    • Consume la respuesta.
    • Actualiza el estado de la transacción a COMPLETADO_EXITO.
  6. SPPD (Dashboard):
    Muestra la transacción como exitosa.


⚡ Escenario 2: Actualización de Precio Especial

  1. SPPD (Usuario):
    Modifica un precio especial para un cliente o segmento específico.

  2. SPPD (Sistema):

    • Genera un mensaje con eventType: SPECIAL_PRICE_UPDATE.
    • Publica el mensaje en el topic correspondiente.
    • (El flujo de procesamiento es similar al de la creación de lista de precios).
  3. Power Street:

    • Consume el mensaje.
    • Procesa y actualiza el precio especial.
    • La actualización es visible y aplicable en Power Street en menos de 15 minutos desde que se realizó el cambio en SPPD.
    • El precio especial sustituye al precio de lista para las condiciones dadas.
  4. SPPD (Dashboard):

    • Registra la transacción como exitosa.
    • Mide y muestra el tiempo total de sincronización.

🎯 Escenario 3: Sincronización de Promoción (% Descuento) y Aplicación en Power Street

  1. SPPD (Usuario):
    Configura una nueva promoción de "% de descuento" para un conjunto de productos.

  2. SPPD (Sistema):

    • Genera un mensaje con eventType: PROMOTION_CREATE.
    • El payload incluye los detalles de la promoción:
      • Porcentaje de descuento
      • Productos aplicables
      • Vigencia y condiciones
    • Publica el mensaje en el topic correspondiente.
  3. Power Street:

    • Consume el mensaje.
    • Interpreta la estructura de la promoción.
    • Configura automáticamente la promoción en su motor de promociones, sin intervención manual.
    • Envía una respuesta de ÉXITO.
  4. SPPD (Dashboard):
    Muestra la transacción como exitosa.

🎯Escenario 4: Sincronización de Promoción (% Descuento) y Aplicación en PowerStreet

  1. SPPD (Usuario):
    Configura una nueva promoción de "% de descuento" para ciertos productos.

  2. SPPD (Sistema):

    • Genera un mensaje de tipo "Creación de Promoción" con:
      • eventType: PROMOTION_CREATE
      • payload: detalles de la promoción (porcentaje, productos, vigencia, condiciones, etc.)
    • Publica el mensaje en el topic correspondiente.
  3. (Flujo similar al de sincronización de otros eventos...)

  4. Power Street:

    • Consume el mensaje.
    • Interpreta la estructura de la promoción.
    • Configura la promoción en su motor de promociones de forma automática, sin intervención manual.
    • Envía una respuesta con estado ÉXITO.
  5. SPPD (Dashboard):
    Muestra la transacción como exitosa.

🔁 Escenario 5: Modificación con Fallo Temporal y Reintento Exitoso

  1. Usuario modifica producto
  2. SPPD (Sistema):
    • 🔄 Genera mensaje (intento 1), publica, estado ENVIADO_A_BROKER
  3. 📬 Broker entrega mensaje
  4. Power Street:
    • Error temporal (⏱️ timeout BD)
    • Publica respuesta: ERROR
  5. SPPD (Sistema):
    • Estado: FALLO_REINTENTABLE
    • Incrementa contador de intento
  6. Después de un tiempo...
  7. SPPD reenvía mensaje (intento 2), estado ENVIADO_A_BROKER (REINTENTO)
  8. Power Street procesa exitosamente, publica ÉXITO
  9. SPPD: Estado COMPLETADO_EXITO
  10. Dashboard: Éxito con historial de 2 intentos 🕒

🚨 Escenario 6: Baja con Fallo Persistente y Corrección Manual

  1. 👤 Usuario solicita baja de producto
  2. 🖥️ SPPD:
    • Genera mensaje
    • ❌ 3 intentos fallidos: "Producto con ventas activas"
  3. ⚠️ Estado: FALLO_PERMANENTE_REQUIERE_ACCION
  4. 📊 Dashboard muestra como fallida permanentemente
  5. 🧑‍🔧 Operador:
    • 🔎 Revisa y analiza error
    • ✍️ Edita el mensaje o ajusta el producto
    • 🔄 Marca como Corregida por Operador
  6. 🛠️ SPPD:
    • Resetea contador
    • Reencola el mensaje
    • Estado: PENDIENTE_ENVIO_CORREGIDO
  7. 🛰️ Envía mensaje corregido
  8. Power Street procesa exitosamente
  9. 🔄 Estado: COMPLETADO_EXITO_CORREGIDO
  10. 🎉 Dashboard muestra como exitosa y corregida 🛡️

3.3 Diagrama de Casos de Uso


3.4 Diagrama de Contexto