← Arquitectura por épica

FT-RAC-04 · Consistencia entre sistemas y gobierno de datos proactivo

Arquitectura del Nuevo PIM por épica · corte del 18-oct-2026

Propuesta del TL: no sustituye la spec de cada épica

Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.

Qué responde. Cómo funciona por dentro FT-RAC-04: qué piezas participan, en qué orden hablan, qué APIs hay que construir con su request y su response, y qué le entrega a la épica siguiente.

Para quién. Los equipos que van a construir la épica, QA y arquitectura.

Estado. [Propuesta] del TL del Nuevo PIM, 18-oct-2026, construida sobre ADR-12. La spec de cada épica dice el qué; estas páginas, el cómo.

Fuente. docs/arquitectura/por-epica/epicas/FT-RAC-04.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-RAC-04-consistencia-sistemas-gobierno-datos-proactivo.md.

En 30 segundos

Hoy las diferencias entre el PIM, el portal y la tienda las descubre el negocio y se corrigen a mano: 23 mil productos sin categoría, registros que son producto en un sistema y SKU en otro. Esta épica concilia cada día, por variante, lo que tiene el PIM con lo que tienen la tienda y Marketplace, detecta los casos conocidos sin filtros de fecha, los prioriza por oferta activa y los manda a la bandeja de Gobierno de Datos, una tarea por caso y negocio.

  • Módulo dueño: MS-04 Reportes. También participan: MS-08 Adaptadores de salida, MS-02 Producto, MS-11 Activos digitales, MS-14 Avisos y ayuda.
  • Etapa 7 · Calidad y categoría. Recibe «PE-9 · Publicado por canal», «PE-6 · SKU asignado» y entrega «PE-8 · Aprobado».
  • APIs: construye 6 y usa 8 que construyen otras épicas.
  • Eventos: publica 2 y consume 3.

1. Dónde encaja

Recibe

DeQué
PE-9 · Publicado por canalLo publicado por canal: el lado del PIM que debe coincidir con la tienda y con Marketplace.
PE-6 · SKU asignadoLos productos con SKU y la tarea de Gobierno de Datos que el motor abre según el resultado del 122 y del 141.
FT-ARQ-02 · Bitácora inmutable y versionado de producto, plantilla y…El origen de cada valor, para explicar de dónde salió una diferencia.
FT-INT-01 · Publicación a e-commerceLo que se mandó a la tienda y su acuse, por producto y variante.
FT-INT-03 · Entrada de SKUs creados en SAPEl libro de registros de SAP y la lista de SKU que no viven en el PIM, por variante, como tercer lado de la conciliación.

Entrega

AQué
PE-8 · AprobadoLas tareas de Gobierno de Datos atendidas con su corrección, para que el producto siga a Aprobado o se republique.
FT-CAT-06 · Agrupadores y corrección masiva de categorías con…Los productos sin categoría en la tienda, listos para la corrección masiva con republicación e indexación.
FT-MIG-04 · Convivencia P360 ↔ nuevo PIMEl universo conciliado y la confirmación escrita de Gobierno de Datos antes de migrar o cortar.

Tareas que abre o cierra: Gobierno de Datos.

2. Diagrama de contexto

Quién participa y cómo se conecta. Las pantallas llegan por el BFF del portal, que valida el token y compone; cada módulo vuelve a validar el token y decide sus permisos con los roles de MS-13.

🟩 Verde: nuevo, se construye · 🟦 Azul: ya existe y se queda, se reutiliza su código · 🟧 Naranja: temporal o se retira (se apaga en R3) · ⬜ Gris: sistema externo · ★ módulo dueño

Sistemas externos

Nuevo PIM · un solo sistema

Pantallas y sistemas

Personas

POST /internal/egress/extractions

Extrae variantes con categoría y visi…

Extrae las ofertas activas por SKU

Deja las fotos normalizadas con su hu…

EXTRACTION_READY

EXTRACTION_READY
ASSET_REJECTED

POST /internal/product/exports/pages
POST /internal/product/tasks

Mandar un aviso explícito

Hallazgos de consistencia
Casos y alertas configurados
y 2 más

Pedir un cambio que revisa el dueño d…
Confirmar un plan de Producto
y 2 más

TASK_CHANGED

ASSET_REJECTED

Gobierno de Datos

Compras

Estudio fotográfico

Entrada Única · Vendor Center

BFF del portal

★ MS-04 Reportes

MS-08 Adaptadores de salida

MS-02 Producto

MS-11 Activos digitales

MS-14 Avisos y ayuda

Base pim

Eventos

Archivos e imágenes

Tienda en línea

Marketplace

Contexto de FT-RAC-04

3. Diagrama de flujo

El camino principal, paso por paso. Cuando una pantalla llama a un módulo se ven dos flechas: la pantalla al BFF y el BFF al módulo. Los eventos salen del outbox del módulo después de guardar; quien los consume ignora los repetidos.

Entrada Única · Vendor CenterMS-14 Avisos y ayudaBase·pimMS-02 ProductoEventosArchivosMarketplaceTienda en líneaMS-08 Adaptadores de salidaMS-04 ReportesEntrada Única · Vendor CenterMS-14 Avisos y ayudaBase·pimMS-02 ProductoEventosArchivosMarketplaceTienda en líneaMS-08 Adaptadores de salidaMS-04 ReportesGobierno de DatosBFF1. Pide la foto diaria de la tienda y de MarketplacePOST /internal/egress/extractions2. Extrae variantes con categoría y visibilidad3. Extrae las ofertas activas por SKU4. Deja las fotos normalizadas con su huella5. Avisa que las fotos están listasEXTRACTION_READY6. Entrega el aviso con la fecha de corteEXTRACTION_READY7. Lee el universo del PIM desde la réplicaPOST /internal/product/exports/pages8. Cruza por variante y guarda hallazgos por caso9. Abre una tarea por caso y negocioPOST /internal/product/tasks10. Avisa a Gobierno de Datos los casos nuevosPOST /internal/notifications/messages11. Revisa hallazgos por negocio y oferta activa12. Pide los hallazgos priorizadosGET /api/v2/consistency/findings13. Cierra la tarea tras un día sin casosPOST /internal/product/tasksGobierno de DatosBFF
Flujo principal de FT-RAC-04
Los pasos en texto
PasoDeAQué haceAPI o evento
1MS-04 ReportesMS-08 Adaptadores de salidaPide la foto diaria de la tienda y de MarketplaceAPI-08-006
2MS-08 Adaptadores de salidaTienda en líneaExtrae variantes con categoría y visibilidad—
3MS-08 Adaptadores de salidaMarketplaceExtrae las ofertas activas por SKU—
4MS-08 Adaptadores de salidaArchivos e imágenes (almacén y CDN)Deja las fotos normalizadas con su huella—
5MS-08 Adaptadores de salidaEventosAvisa que las fotos están listascatalog.delivery.result/EXTRACTION_READY
6EventosMS-04 ReportesEntrega el aviso con la fecha de cortecatalog.delivery.result/EXTRACTION_READY
7MS-04 ReportesMS-02 ProductoLee el universo del PIM desde la réplicaAPI-02-121
8MS-04 ReportesBase pimCruza por variante y guarda hallazgos por caso—
9MS-04 ReportesMS-02 ProductoAbre una tarea por caso y negocioAPI-02-311
10MS-04 ReportesMS-14 Avisos y ayudaAvisa a Gobierno de Datos los casos nuevosAPI-14-005
11Gobierno de DatosEntrada Única · Vendor CenterRevisa hallazgos por negocio y oferta activa—
12Entrada Única · Vendor CenterMS-04 Reportes (por el BFF)Pide los hallazgos priorizadosAPI-04-018
13MS-04 ReportesMS-02 ProductoCierra la tarea tras un día sin casosAPI-02-311

3.1 Foro o Compras piden una corrección a Gobierno de Datos

EventosMS-02 ProductoEntrada Única · Vendor CenterEventosMS-02 ProductoEntrada Única · Vendor CenterEstudio fotográficoBFFGobierno de DatosCompras1. Marca un SKU con color o sección erróneos2. Pide la solicitud de cambio con el valor vistoPOST /api/v2/products/{id}/change-requests/plans3. Confirma la solicitudPOST /api/v2/product-plans/{planId}/apply4. Abre la tarea de Gobierno de DatosTASK_CHANGED5. Revisa la gestión y la aprueba6. Aprueba y aplica el cambio con su planPOST /api/v2/tasks/plans7. Consulta el estatus de su gestión8. Ve quién la pidió, quién la aprobó y cuándoGET /api/v2/products/{id}/change-requestsEstudio fotográficoBFFGobierno de DatosCompras
Foro o Compras piden una corrección a Gobierno de Datos

3.2 Imagen en cuarentena

Entrada Única · Vendor CenterBase·pimMS-04 ReportesEventosMS-11 Activos digitalesEntrada Única · Vendor CenterBase·pimMS-04 ReportesEventosMS-11 Activos digitalesGobierno de DatosBFF1. Avisa una imagen rechazadaASSET_REJECTED2. Entrega el rechazo a ReportesASSET_REJECTED3. Agrega la alerta al tablero de calidad4. Ve la alerta en el tablero de calidad5. Pide los hallazgos de imágenes en cuarentenaGET /api/v2/consistency/findingsGobierno de DatosBFF
Imagen en cuarentena

3.3 Configurar un caso y correr a mano

MS-14 Avisos y ayudaBase·pimMS-04 ReportesEntrada Única · Vendor CenterMS-14 Avisos y ayudaBase·pimMS-04 ReportesEntrada Única · Vendor CenterGobierno de DatosBFF1. Ajusta el caso «aprobado incompleto» de Marketplace2. Lee los casos configuradosGET /api/v2/monitors3. Cambia el caso con su versiónPUT /api/v2/monitors/{monitorId}4. Corre la conciliación sin filtro de fechaPOST /api/v2/consistency/runs5. Guarda hallazgos con el valor de cada sistema6. Manda a Foro el listado diario bajo 95 %POST /internal/notifications/messagesGobierno de DatosBFF
Configurar un caso y correr a mano

4. Si algo sale mal

  • La foto de la tienda o de Marketplace no llega o llega incompleta. La corrida no compara: el resultado queda «sin dato» con la fecha de la última foto buena, nunca «cero diferencias», y Gobierno de Datos recibe el aviso.
  • Un hallazgo ya tiene una tarea abierta de su caso y negocio. Se suma a esa tarea y se actualiza su conteo; no se abre otra.
  • Un caso lleva 5 días hábiles sin atenderse. El motor pasa la tarea a la cola de Category, como se hace hoy con lo no resuelto, y lo avisa.
  • Se quiere migrar o cortar un universo con diferencias. La corrida exige la confirmación escrita de Gobierno de Datos y la deja en la bitácora; sin ella, el universo no se da por bueno.
  • Un producto es producto en la tienda y SKU en el PIM. Queda como TIPO_DISTINTO con el valor de cada sistema; Reportes no corrige nada, lo decide Gobierno de Datos con la herramienta del dueño.

5. APIs

Las que construye esta épica (6)

POST /api/v2/consistency/runs · Correr una conciliación
CampoValor
APIAPI-04-017 · MS-04 Reportes
Para quéCorre a mano la conciliación entre el PIM, la tienda y Marketplace para un negocio o un seller, con los casos elegidos y sin filtros de fecha; la diaria corre sola. Responde con el trabajo.
En esta épicaCorrer a mano una conciliación por negocio o seller
Quién la llamaBFF del portal
PermisoGOBIERNO (Gobierno de Datos)
CabecerasAuthorization, X-Request-Id, Idempotency-Key
Escribe enreport_jobs

Request

{
  "scope": {
    "business": "MKP",
    "sellerId": null
  },
  "cases": [
    "INEXISTENTE_EN_TIENDA",
    "SIN_CATEGORIA_EN_TIENDA",
    "TIPO_DISTINTO",
    "APROBADO_INCOMPLETO"
  ],
  "cutoff": "2026-10-18T06:00:00Z",
  "confirmForMigration": false
}

Response · 202

{
  "success": true,
  "data": {
    "jobId": "job-con-0418",
    "status": "ACCEPTED",
    "links": {
      "findings": "/api/v2/consistency/findings?runId=job-con-0418"
    }
  }
}

Errores

HTTPCódigoCuándo
423LOCKEDYa corre otra conciliación del mismo alcance
503DEPENDENCY_UNAVAILABLENo llegó la foto de la tienda o de Marketplace de esa fecha; no se compara
GET /api/v2/consistency/findings · Hallazgos de consistencia
CampoValor
APIAPI-04-018 · MS-04 Reportes
Para quéLos hallazgos de una conciliación por caso y negocio, primero los que tienen oferta activa, con el valor de cada sistema, la fecha de corte y la tarea de Gobierno de Datos que los atiende.
En esta épicaHallazgos por caso y negocio, primero los de oferta activa
Quién la llamaBFF del portal
PermisoGOBIERNO o CATEGORY
CabecerasAuthorization, X-Request-Id
ParámetrosrunId = job-con-0418, case = TIPO_DISTINTO, business = MKP, activeOffer = True, status = OPEN, page = 1, size = 100

Request

null

Response · 200

{
  "success": true,
  "data": {
    "summary": [
      {
        "case": "TIPO_DISTINTO",
        "business": "MKP",
        "open": 412,
        "withActiveOffer": 97,
        "taskId": "tsk-40112"
      }
    ],
    "items": [
      {
        "findingId": "fnd-88123",
        "case": "TIPO_DISTINTO",
        "objectType": "VARIANT",
        "sku": "1000004812",
        "productId": "PRD-0004812",
        "business": "MKP",
        "values": {
          "PIM": "SKU",
          "TIENDA": "PRODUCTO"
        },
        "activeOffer": true,
        "cutoff": "2026-10-18T06:00:00Z",
        "status": "OPEN",
        "taskId": "tsk-40112"
      }
    ],
    "page": 1,
    "size": 100,
    "total": 412
  }
}

Errores

HTTPCódigoCuándo
404NOT_FOUNDLa corrida no existe
GET /api/v2/monitors · Casos y alertas configurados
CampoValor
APIAPI-04-019 · MS-04 Reportes
Para quéLista lo que Reportes vigila: los casos de consistencia por negocio (si abren tarea y cuándo se cierran) y las alertas de caída de visibles (umbral, línea base, horario y a quién se avisa).
En esta épicaCasos de consistencia y alertas configurados
Quién la llamaBFF del portal
PermisoGOBIERNO o REP-ADMIN
CabecerasAuthorization, X-Request-Id
Parámetrostype = ``

Request

null

Response · 200

{
  "success": true,
  "data": {
    "items": [
      {
        "monitorId": "mon-con-sin-categoria-mkp",
        "type": "CONSISTENCY_CASE",
        "case": "SIN_CATEGORIA_EN_TIENDA",
        "business": "MKP",
        "opensTask": true,
        "closeAfterDaysWithoutCases": 1,
        "escalateAfterWorkdays": 5,
        "version": 2
      },
      {
        "monitorId": "mon-con-cumplimiento-mer",
        "type": "CONSISTENCY_CASE",
        "case": "BAJO_CUMPLIMIENTO",
        "business": "MER",
        "thresholdPct": 95,
        "dailyListTo": "AREA:FORO",
        "opensTask": false,
        "version": 1
      },
      {
        "monitorId": "mon-vis-seller",
        "type": "VISIBILITY_DROP",
        "scope": "SELLER",
        "thresholdPct": 8,
        "baseline": "MEDIAN_7D",
        "schedule": "DIARIO 07:00",
        "notify": [
          "AREA:MARKETPLACE"
        ],
        "version": 3
      },
      {
        "monitorId": "mon-vis-catalogo",
        "type": "VISIBILITY_DROP",
        "scope": "CATALOG",
        "thresholdPct": 6,
        "baseline": "MEDIAN_7D",
        "schedule": "DIARIO 07:00",
        "notify": [
          "AREA:MARKETPLACE",
          "AREA:GOBIERNO_PRODUCTO"
        ],
        "version": 1
      }
    ]
  }
}

Errores

HTTPCódigoCuándo
403AUTHORIZATION_ERRORQuien llama no tiene GOBIERNO ni REP-ADMIN
PUT /api/v2/monitors/{monitorId} · Cambiar un caso o una alerta
CampoValor
APIAPI-04-020 · MS-04 Reportes
Para quéCambia un caso de consistencia o una alerta de visibles: umbral, línea base, horario, a quién se avisa o si abre tarea. Vale desde la siguiente corrida.
En esta épicaCambiar un caso o una alerta con su versión
Quién la llamaBFF del portal
PermisoREP-ADMIN (Gobierno de Datos para casos, Marketplace para alertas de visibles)
CabecerasAuthorization, X-Request-Id, If-Match
ParámetrosmonitorId = mon-vis-seller
También la usanFT-RAC-08

Request

{
  "version": 3,
  "thresholdPct": 10,
  "baseline": "PREVIOUS_DAY",
  "notify": [
    "AREA:MARKETPLACE"
  ]
}

Response · 200

{
  "success": true,
  "data": {
    "monitorId": "mon-vis-seller",
    "version": 4,
    "effectiveFrom": "2026-10-19T07:00:00Z"
  }
}

Errores

HTTPCódigoCuándo
409VERSION_CONFLICTAlguien cambió el caso o la alerta desde que se leyó
422VALIDATION_ERROREl umbral está fuera de 1 a 50 % o la línea base no existe
POST /internal/egress/extractions · Reportes pide a MS-08 una foto de lo que hay en un destino q
CampoValor
APIAPI-08-006 · MS-08 Adaptadores de salida
Para quéReportes pide a MS-08 una foto de lo que hay en un destino que MS-08 ya atiende: de la tienda, las variantes con su categoría, su relación genérico–variante y si están visibles e indexadas por sitio; de Marketplace, las ofertas activas por SKU y seller. MS-08 la extrae, la normaliza, la deja en el almacén con su huella y avisa con EXTRACTION_READY. Responde 202.
En esta épicaPedir a MS-08 la foto de la tienda o de Marketplace
También la usanFT-RAC-08

Request

{
  "destination": "TIENDA",
  "kind": "VARIANTS_VISIBILITY",
  "business": "MKP",
  "sellerId": null,
  "site": null,
  "asOf": "2026-10-18T06:00:00Z",
  "requestedBy": "MS-04"
}

Response · 202

{
  "success": true,
  "data": {
    "jobId": "job-ext-0418",
    "status": "ACCEPTED"
  }
}

Errores

HTTPCódigoCuándo
403AUTHORIZATION_ERRORQuien llama no tiene el permiso o no es el módulo autorizado
422VALIDATION_ERRORFalta un dato o viene con un formato inválido; el detalle dice qué campo
409IDEMPOTENCY_MISMATCHSe repite la llave de idempotencia con otro cuerpo
POST /internal/product/tasks · Otro módulo (Reportes) abre, actualiza o cierra una tarea de
CampoValor
APIAPI-02-311 · MS-02 Producto
Para quéOtro módulo (Reportes) abre, actualiza o cierra una tarea de Gobierno de Datos por caso y negocio, con la liga a sus hallazgos y una muestra de productos. El motor la pone en la cola del área, la escala a Category a los 5 días hábiles y la cierra cuando Reportes avisa un día sin casos.
En esta épicaAbrir, actualizar o cerrar una tarea por caso y negocio

Request

{
  "action": "OPEN_OR_UPDATE",
  "type": "GOBIERNO_DE_DATOS",
  "origin": "REPORTS",
  "caseId": "SIN_CATEGORIA_EN_TIENDA",
  "business": "MKP",
  "findingsRef": "job-con-0418",
  "count": 23104,
  "sampleProductIds": [
    "PRD-0007710",
    "PRD-0007711"
  ]
}

Response · 200

{
  "success": true,
  "data": {
    "taskId": "tsk-40112",
    "status": "OPEN",
    "queue": "GOBIERNO_DATOS",
    "created": false,
    "count": 23104
  }
}

Errores

HTTPCódigoCuándo
403AUTHORIZATION_ERRORQuien llama no tiene el permiso o no es el módulo autorizado
422VALIDATION_ERRORFalta un dato o viene con un formato inválido; el detalle dice qué campo
409IDEMPOTENCY_MISMATCHSe repite la llave de idempotencia con otro cuerpo

Las que usa y construye otra épica (8)

Su request y su response están en la página de la épica que la construye.

APIMétodo y rutaPara qué, aquíLa construye
API-14-005POST /internal/notifications/messagesAvisar a Gobierno de Datos y mandar el listado diario a ForoFT-RAC-05 · Estatus del producto y motivos visibles para seller y…
API-02-310POST /api/v2/products/{id}/change-requests/plansPedir una corrección o una gestión de Data Maestra con revisión del dueñoFT-PRD-05 · Edición y aprobación por campo según el dueño del dato
API-02-057POST /api/v2/product-plans/{planId}/applyConfirmar la solicitud de cambioFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-02-035POST /api/v2/tasks/plansAprobar la gestión y aplicar el cambioFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-02-309GET /api/v2/products/{id}/change-requestsEl estatus de la gestión: quién la pidió, quién la revisó y cómo terminóFT-PRD-05 · Edición y aprobación por campo según el dueño del dato
API-02-402GET /api/v2/sap-errorsLos productos con error de SAP y su tarea de Gobierno de DatosFT-PRD-02 · Creación de SKU con SAP
API-02-032GET /api/v2/tasksLa bandeja de tareas de Gobierno de DatosFT-PRD-06 · Bandeja de pendientes y depuración de borradores…
API-02-121POST /internal/product/exports/pagesLeer el universo del PIM desde la réplicaFT-RAC-07 · Reportes, exportes, importes y búsquedas por atributos

6. Eventos

Publica

EventoCuándoQuién lo consume
catalog.delivery.result/EXTRACTION_READYMS-08 deja en el almacén la foto pedida de la tienda o de MarketplaceFT-RAC-08
catalog.product.changed/TASK_CHANGEDMS-02 abre, actualiza, escala o cierra la tarea de Gobierno de Datos de un casoFT-ACT-05, FT-ACT-06, FT-ARQ-02, FT-CAT-06, FT-FLU-01, FT-IA-06, FT-PRD-02, FT-PRD-05, FT-PRD-06, FT-PRD-07, FT-PRD-08, FT-RAC-02, FT-RAC-03, FT-RAC-05, FT-RAC-06

Consume

EventoPara quéQuién lo publica
catalog.delivery.result/EXTRACTION_READYReportes arranca la conciliación con la foto y su fecha de corteesta misma épica
catalog.asset.changed/ASSET_REJECTEDReportes pone la imagen rechazada como alerta en el tablero de calidadFT-ACT-01, FT-ACT-02, FT-ACT-03
catalog.product.changed/TASK_CHANGEDReportes sabe cuándo Gobierno de Datos tomó y cerró cada casoesta misma épica

7. Datos

Cada colección tiene un solo dueño, el único que escribe en ella.

ColecciónDueñoQué guardaEsta épica
report_findingsMS-04Los hallazgos de las corridas de consistencia y de visibilidad: objeto, caso, valor en cada sistema, negocio, oferta activa, causa, fecha de corte, estado y tarea que lo atiende.escribe
report_jobsMS-04Exportaciones y reportes asíncronos.escribe
tasksMS-02Todo el trabajo asignado: visto bueno, corrección, Gobierno de Datos, foto, secciones, QA, revisión del cambio y repoblamiento.escribe
report_monitorsMS-04Los casos de consistencia y las alertas que vigila Reportes: umbral, línea base, horario, a quién se avisa, si abren tarea y cuándo se cierran.lee
report_findingsMS-04Los hallazgos de las corridas de consistencia y de visibilidad: objeto, caso, valor en cada sistema, negocio, oferta activa, causa, fecha de corte, estado y tarea que lo atiende.lee

8. Historias que cubre

HistoriaPrioridadCómo la cubre
FT-RAC-04·H1 · Conciliar el PIM con EU/Vendor y CommerceTools a nivel varianteP1pasos 1, 2, 3, 4, 5, 6, 7, 8; API-08-006, API-02-121
FT-RAC-04·H2 · Que el PIM detecte solo los casos de inconsistencia conocidosP1pasos 8; flujo «Configurar un caso y correr a mano»; API-04-017
FT-RAC-04·H3 · Hallazgos por negocio y priorizados por oferta activaP2pasos 11, 12; API-04-018
FT-RAC-04·H4 · Una tarea según el resultado de la creación del SKUP2API-02-402, API-02-032. Fuera: La tarea la abre el motor de MS-02 al procesar el 122 y el 141 (FT-PRD-02); aquí se fija qué resultados la abren (D-RAC-04-4) y se ve en la bandeja de Gobierno de Datos.
FT-RAC-04·H5 · Mandar a Gobierno de Datos un SKU con color, grupo de artículo o sección erróneosP3flujo «Foro o Compras piden una corrección a Gobierno de Datos», «Imagen en cuarentena»; API-02-310
FT-RAC-04·H6 · Lo que no llega al umbral de cumplimiento, a ForoP2flujo «Configurar un caso y correr a mano»; API-04-019, API-14-005
FT-RAC-04·H7 · Gestiones de Data Maestra sin ticketsP2flujo «Foro o Compras piden una corrección a Gobierno de Datos»; API-02-310, API-02-309

9. Decisiones de esta épica

Las tomó el TL como arquitecto; quedan como [Propuesta] hasta que el equipo de la épica las revise.

  • D-RAC-04-1. Las fotos de la tienda y de Marketplace las trae MS-08, que ya tiene la conexión con esos destinos: Reportes pide la extracción, MS-08 deja el archivo normalizado con su huella en el almacén y avisa con EXTRACTION_READY. Reportes nunca llama a la tienda ni a Marketplace. Por qué: Los externos sólo hablan con los adaptadores, y la lectura de e-commerce no tenía dueño. Se apoya en PD-09, DUD-10, ADR-12.
  • D-RAC-04-2. La conciliación es diaria, por variante, sin filtro de fecha y con fecha de corte. Arranca con cuatro casos: INEXISTENTE_EN_TIENDA, SIN_CATEGORIA_EN_TIENDA, TIPO_DISTINTO (producto en uno y SKU en otro, con el valor de cada sistema) y APROBADO_INCOMPLETO (sin imagen principal, grupo de artículos o número de proveedor). Los casos son configuración de Reportes, no código. Por qué: El filtro de fechas dejó casos fuera; con un barrido completo el reporte sin categoría tiene que dar cero. Se apoya en RF-CAL-01, RF-CAL-02, DEC-96.
  • D-RAC-04-3. Gobierno de Datos tiene una sola bandeja, la de tareas de MS-02: cada caso por negocio abre una tarea GOBIERNO_DE_DATOS con la liga a sus hallazgos, no una por producto, y se cierra sola después de un día sin casos. Por qué: Hoy se abre un ticket por escenario y negocio y se cierra tras monitorear; una tarea por producto inundaría la bandeja. Se apoya en RN-CAL-01, PEN-60.
  • D-RAC-04-4. Qué resultados del SKU abren tarea: un SKU fallido (141) abre GOBIERNO_DE_DATOS con el error clasificado; uno exitoso sólo si es de la línea SFERA o si la IA dio confianza de 0.999517 o menos y falta grupo de artículos o sección; los demás no. La abre el motor de MS-02 al procesar el 122 y el 141. Por qué: Son los disparadores que ya funcionan hoy; una tarea para cada creación exitosa no sirve a nadie. Se apoya en PEN-60, DUD-32.
  • D-RAC-04-5. Los hallazgos se separan por negocio y se ordenan por oferta activa, tomada de la foto de Marketplace o de la tienda; lo no resuelto en 5 días hábiles pasa a Category. Por qué: La remediación de hoy atiende primero lo que vende y escala a Category lo no resuelto. Se apoya en RN-CAL-02, DEC-75.
  • D-RAC-04-6. Mientras no exista otra cuarentena, una imagen en cuarentena es una imagen que Activos (MS-11) rechazó: su ASSET_REJECTED aparece como alerta en el tablero de calidad. Por qué: La cuarentena no existe en código; el rechazo de Activos ya es un evento. Se apoya en DUD-35.
  • D-RAC-04-7. Las gestiones de Data Maestra y lo que Foro detecta mal se piden dentro del PIM como solicitud de cambio de MS-02 (API-02-310), con el valor observado y el propuesto; la revisa Gobierno de Datos como dueño del dato y, al aprobar, el cambio queda aplicado con quién lo pidió, quién lo aprobó y cuándo. Por qué: Ya existe la solicitud de cambio con revisión por dueño; no hace falta otro formulario ni un ticket. Se apoya en PEN-95, DUD-32.
  • D-RAC-04-8. El umbral de cumplimiento de Mercaderías (95 % de obligatorios) es un caso más de la conciliación; su listado diario se manda al equipo de Foro y no se mezcla con la meta de listas de valores ni con el 85/95 del score de Marketplace. Por qué: La historia lo pide como listado diario para trabajo manual, no como compuerta del flujo. Se apoya en RF-CAL-14.

Qué falta decidir

IDQué falta
DUD-32Gobierno de Producto confirma el tipo de cada tarea de Gobierno de Datos y su bandeja.
DUD-35Confirmar si hace falta una cuarentena de imágenes distinta del rechazo de Activos.
PD-01Esta épica es mejora frente a la paridad: necesita la excepción del Kick-off.

También siguen abiertos: PEN-60, Negocio ratifica qué resultados de la creación del SKU abren tarea de Gobierno de Datos (propuesta en D-RAC-04-4); PEN-95, Foro confirma si su menú para mandar datos a Gobierno de Datos llegó a producción.

Fuentes

  1. [D] trazabilidad/features/FT-RAC-04-consistencia-sistemas-gobierno-datos-proactivo.md: la ficha de la épica, con sus historias, reglas y bloqueos.
  2. [D] ADR-12 · Un solo sistema: backend compartido y una sola base (sección 3.4).
  3. [D] docs/arquitectura/por-epica/base/: piezas, colecciones, eventos y el hilo de punta a punta.
  4. [D] docs/arquitectura/omega-a-pim-headless/contratos-api.md: convenciones y endpoints de partida.
  5. [D] docs/arquitectura/maquina-de-estados-to-be/propuesta-maquina-de-estados.md §7: estados, tareas y canales.
  6. [I] Las decisiones de la sección 9 son del TL sobre esas fuentes.