← Arquitectura por épica

Arquitectura por épica · Piezas, datos, eventos y reglas

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.

Qué responde. Con qué piezas se arma cada épica: los módulos y lo que los rodea, las colecciones de la base única con su dueño, los tópicos de eventos y las reglas de las APIs.

Para quién. Quien diseña o construye una épica.

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/base/.

En 30 segundos

  • 15 módulos en un solo backend; MS-11 a MS-15 son nuevos (ADR-12) y su número es provisional.
  • 67 colecciones en la base pim, cada una con un solo dueño.
  • 16 tópicos: cada uno lo publica un solo módulo, desde su outbox.
  • Una sola API: los módulos publican /api/v2 (la llaman el BFF, el gateway y el agente), /internal/<módulo> entre módulos, /bff/v1 para las pantallas y /partner/v1 para terceros. No hay capa de compatibilidad.

1. Las piezas

🟩 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 · ★ en cada épica, su módulo dueño

PiezaNombreEstadoQué hace
P-PROVEEDORProveedor—Da de alta y corrige las propuestas de sus productos en Mercaderías.
P-SELLERSeller—Da de alta sus productos y ofertas en Marketplace.
P-COMPRASCompras—Da el visto bueno a las propuestas de Mercaderías.
P-GOBIERNOGobierno de Datos—Corrige datos maestros y resuelve lo que SAP o la IA no pudieron.
P-ADMINAdministración del catálogo—Configura plantillas, atributos, listas, reglas y categorías (Gobierno de Producto).
P-QAQA y Category—Revisa la calidad y la categoría web cuando la IA no alcanza el umbral.
P-ESTUDIOEstudio fotográfico—Logística, fotografía, edición y captura de las muestras físicas.
P-AREASÁreas con sección—Legal, Sostenibilidad, VAS, Logística y E-commerce: llenan o validan su sección de la ficha.
P-REPOBLAMIENTORepoblamiento—Corrige productos ya publicados y los vuelve a mandar.
F-PORTALEntrada Única · Vendor Center⟦existeBlue⟧El portal de catalogación de hoy, que se queda: las pantallas de catalogación, incluido el módulo M6 de Foro (enriquecimiento, desde R2). Deja de tener backend propio y llega a los módulos por el BFF del portal.
F-FOROForo · portal del estudio⟦existeBlue⟧El portal de Foro Fotográfico de hoy, que se queda para la operación física del estudio (muestras, logística, toma). Deja de tener backend propio y llega a los módulos por el mismo BFF del portal.
F-AGENTEAgente del estudio—Programa local junto a la cámara: sube cada foto directo a Activos digitales con credencial de equipo, sin pasar por el BFF.
S-PROVEEDORESSistemas de proveedores y sellers—Mandan sus productos por API, a través del gateway de terceros.
B-INGRESSEntrada del clúster—Infraestructura con tres puertas: el BFF del portal, el agente del estudio hacia Activos y el gateway de terceros. Pone los límites por puerta.
B-BFFBFF del portal⟦nuevoGreen⟧Un solo BFF para Vendor Center y el portal del estudio: valida el token, aplica los permisos de pantalla y compone pantallas. Sin base de datos y sin reglas de negocio; los servicios no se exponen a internet.
B-GATEWAYGateway de terceros /partner/v1⟦nuevoGreen⟧Atiende a los sistemas de proveedores y sellers: credenciales de cliente, límite de llamadas y contrato versionado.
MS-01Catálogo⟦existeBlue⟧Dueño de plantillas, atributos, listas de valores, reglas de captura, categorías web, sitios y diccionarios.
MS-02Producto⟦nuevoGreen⟧Dueño de propuestas, productos, variantes, EAN, cargas masivas, el motor de estados con sus tareas y los trabajos de publicación.
MS-04Reportes⟦nuevoGreen⟧Exportaciones, herramientas y tableros.
MS-05Auditoría⟦nuevoGreen⟧La bitácora: quién cambió qué, con el antes y el después.
MS-06Evaluación⟦nuevoGreen⟧Lista negra, coincidencias y calificación (score) con sus umbrales.
MS-11Activos digitales⟦nuevoGreen⟧Cada archivo una sola vez: carga, validación técnica, nombre, URL de trabajo y copia congelada; cargas masivas de imágenes.
MS-12Estudio fotográfico⟦nuevoGreen⟧Muestras, contenedores, cajas, tarimas, toma, edición, guía de fotos y capacidad del estudio.
MS-13Identidad y acceso⟦nuevoGreen⟧Un solo directorio: usuarios, perfiles, roles, permisos por módulo, acción, negocio y grupo de atributos, y el registro de terceros que llaman por API.
MS-14Avisos y ayuda⟦nuevoGreen⟧Notificaciones en pantalla, correo, avisos al proveedor o seller y centro de ayuda.
MS-15IA y enriquecimiento⟦nuevoGreen⟧Un solo motor de IA: sugerencia de plantilla y de categoría, prellenado, enriquecimiento de atributos y validación de calidad.
MS-07Ingesta de archivos⟦nuevoGreen⟧Recibe los archivos de SAP (122, 141, 142 y las demás interfaces) y la respuesta de o9, y los entrega al módulo dueño.
MS-08Adaptadores de salida⟦nuevoGreen⟧Arma lo que recibe cada destino (4 TXT a SAP, mensajes en los tópicos que lee la tienda, XML a OMS, Marketplace y Señalización, archivo de placeholders a o9) y devuelve el acuse.
MS-09Publicador de categorías⟦existeBlue⟧Único que publica el árbol de categorías a la tienda.
MS-10Exportador al DWH⟦nuevoGreen⟧Manda al DWH el producto y el diccionario de plantillas.
MS-03Migración y convivencia⟦temporalYellow⟧Carga desde P360 y mantiene la convivencia hasta R3; después se apaga.
D-BASEBase pim—Una sola base. Cada colección tiene un solo módulo dueño.
D-EVENTOSEventos—Los tópicos por los que cada módulo avisa sus cambios desde su outbox.
D-ARCHIVOSArchivos e imágenes (almacén y CDN)—Los binarios: la ficha sólo guarda su URL.
X-SAPSAP⟦externoGrey⟧Crea los artículos y manda datos maestros, precios y costos.
X-TIENDATienda en línea⟦externoGrey⟧Product Data Service y commercetools: reciben producto y categorías.
X-OMSOMS⟦externoGrey⟧Recibe el producto para surtir pedidos.
X-MARKETPLACEMarketplace⟦externoGrey⟧El portal de ofertas de los sellers (Mirakl, hasta que lo reemplace Vendor Center).
X-SENALIZACIONSeñalización⟦externoGrey⟧Recibe el producto para las etiquetas y la señalización en tienda.
X-DWHDWH⟦externoGrey⟧El almacén de datos para análisis.
X-O9o9 (planeación de compras)⟦externoGrey⟧Recibe los placeholders de pre-compra y devuelve cuáles recomienda comprar, por archivo en un bucket.
X-P360P360⟦temporalYellow⟧El PIM de hoy: fuente de la migración y de la convivencia, hasta que se apague.
X-MODELOSModelos de IA⟦externoGrey⟧Los modelos que usa el módulo de IA, incluida la predicción de grupo de artículo que ya corre.
X-CORREOServicio de correo⟦externoGrey⟧Manda los correos a proveedores, sellers y usuarios internos.
X-IDPProveedor de identidad⟦externoGrey⟧Inicio de sesión y emisión del token.
X-EU-FOROBackends de hoy de Entrada Única y Foro⟦temporalYellow⟧Los backends y bases de hoy de los dos portales, mientras convivan: leen los avisos idmc_*, Entrada Única responde GET /users/auth (el BFF toma de ahí el contexto del usuario hasta R2) y Foro tiene su servicio de usuarios. Se apagan con tráfico cero en R3; los portales se quedan.
X-WEBSitios web públicos⟦externoGrey⟧Las páginas públicas de producto de sellers, marcas y competencia. Sólo MS-15 las lee (scraping); no reciben nada del PIM.

2. Las colecciones y su dueño

ColecciónDueñoQué guarda
attributesMS-01Cada atributo: tipo, lista, restricciones, grupos e identificadores externos.
attribute_groupsMS-01Grupos de atributos, incluidos los de permiso (quién ve y quién edita).
lovsMS-01Cabecera de cada lista de valores.
lov_valuesMS-01Cada valor de lista: código, etiqueta, orden y equivalencias por sistema.
taxonomiesMS-01Los árboles: plantillas, grupos de artículo y sitios web.
taxonomy_nodesMS-01Plantillas y nodos de grupo de artículo, con la configuración de atributos de cada plantilla.
template_viewsMS-01La vista efectiva ya resuelta por plantilla y negocio: qué atributos pide y cuáles son obligatorios.
governance_rulesMS-01Reglas de captura y clasificación: marcas por plantilla, grupo de artículo a plantilla, alcance del proveedor y lista negra de Marketplace.
reference_table_defsMS-01Definición de cada diccionario.
reference_tablesMS-01Las entradas de los diccionarios: tallas, colores, impuestos, excepciones y demás datos de referencia.
categoriesMS-01Cada categoría web con su lugar en el árbol y su estado.
brandsMS-01Los sitios (banners): Liverpool, Suburbia y los demás.
id_sequencesMS-01El siguiente identificador de plantillas y catálogos.
import_jobsMS-01Cargas masivas de configuración del catálogo, con revisión previa y resultado por fila.
governance_receiptsMS-01El recibo de cada escritura confirmada en el catálogo (antes operation_receipts).
governance_outboxMS-01Los cambios del catálogo que esperan salir como evento (antes outbox).
productsMS-02La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos.
product_draftsMS-02Borradores del alta guiada.
identifier_registryMS-02Unicidad de SKU y de EAN por negocio.
product_groupsMS-02Looks, configurables y venta cruzada.
product_versionsMS-02Foto numerada del producto en cada versión.
product_sequencesMS-02El siguiente bloque de identificadores de producto.
tasksMS-02Todo el trabajo asignado: visto bueno, corrección, Gobierno de Datos, foto, secciones, QA, revisión del cambio y repoblamiento.
product_jobsMS-02Trabajos asíncronos: cargas masivas de productos, edición masiva y publicación.
product_delivery_statusMS-02El estado de publicación por producto y canal: Pendiente, Enviado, Publicado, Error o Retirado.
publication_rulesMS-02El mínimo que pide cada canal para publicar.
catalog_exceptionsMS-02Excepciones de catalogación: qué no se publica o va por la vía rápida.
product_reference_tablesMS-02Configuración del motor de estados y del matching: transiciones, estados externos y pesos.
product_receiptsMS-02El recibo de cada escritura confirmada en el producto (antes operation_receipts).
product_outboxMS-02Los cambios del producto que esperan salir como evento (antes outbox).
validation_thresholdsMS-06Los umbrales de coincidencia y de calificación por negocio.
validation_resultsMS-06El resultado de cada evaluación: lista negra, coincidencias con su confianza y score.
asset_typesMS-11Los tipos de activo (principal, detalle, isométrica, video, certificado…) con su ficha técnica: medidas, peso, formato, máximo y si se publica.
assetsMS-11Cada archivo una vez: a qué producto, variante y posición pertenece, su validación técnica, URL de trabajo y URL congelada.
asset_jobsMS-11Cargas masivas de imágenes, por archivo comprimido, carpeta o lista de URL.
asset_outboxMS-11Los cambios de activos que esperan salir como evento.
studio_samplesMS-12Cada muestra física que entra al estudio, por SKU, con su recorrido.
studio_logisticsMS-12Contenedores, cajas, tarimas, tiendas y salidas con vale.
studio_workMS-12Tomas, ediciones y capturas por SKU, con quién las tiene asignadas.
studio_configMS-12Guía de fotos, capacidad por fotógrafo, tiempos y configuración de la edición con IA.
studio_outboxMS-12Los cambios del estudio que esperan salir como evento.
usersMS-13Cada usuario interno, proveedor o seller, su liga con el proveedor de identidad y sus roles.
rolesMS-13Perfiles y roles, con sus membresías y su alcance (negocio, sección, proveedor o seller, vigencia). Los permisos de dominio los decide el servicio dueño con estos roles (decisión 19).
partnersMS-13El registro de terceros: proveedores y sellers que llaman por API, con su tipo, negocios, tiendas, alcances, límites y clientes (catalogación por API §3.1).
identity_outboxMS-13Los cambios de identidad que esperan salir como evento.
notificationsMS-14Cada aviso a un usuario, proveedor o seller: canal, texto, si ya lo leyó.
help_articlesMS-14El contenido del centro de ayuda.
ai_jobsMS-15Cada trabajo de IA con su entrada, su resultado y su confianza.
ai_configMS-15Qué modelo atiende cada tarea y con qué umbral.
dashboard_profilesMS-04Los tableros personales de cada usuario.
dashboard_resultsMS-04El último resultado de cada tarjeta.
report_jobsMS-04Exportaciones y reportes asíncronos.
audit_eventsMS-05Quién cambió qué, cuándo, desde dónde, con el antes y el después.
sap_inbound_filesMS-07Cada archivo que llega de SAP y el avance de sus registros.
category_delivery_statusMS-09El último envío de cada categoría a la tienda.
mig_runsMS-03Cada corrida de migración con sus conteos.
mig_issuesMS-03Lo que no se pudo migrar y por qué.
mig_reconciliationMS-03Las diferencias entre P360 y el Nuevo PIM durante la convivencia.
egress_batchesMS-08Cada lote que sale a un destino: productos y versiones, intentos, respuesta del destino, huella de lo enviado y, si quedó incierto, la decisión de una persona con su motivo.
mig_id_mapMS-03El mapa de identidad entre sistemas: cada ID heredado de P360, Omega o Entrada Única con su llave en el Nuevo PIM y cómo se resolvió, y los bloques de Identifier reservados en la secuencia de P360.
mig_p360_writesMS-03Cada escritura que MS-03 hace en P360 por encargo de MS-01 o MS-02 mientras P360 es la fuente: el cambio, su llave de idempotencia, la respuesta de P360 y la versión recargada. Se borra 30 días después y se apaga con P360.
governance_change_requestsMS-01Cada solicitud de cambio del catálogo: qué objetos toca, el antes y el después por campo, el canal (pantalla, carga, API, IA o migración), quién la pidió y quién la decidió, su estado (pendiente, aprobada, rechazada, aplicada, en conflicto o vencida) y su recibo.
saved_searchesMS-02Búsquedas de productos guardadas por usuario, con su nombre, sus filtros y con qué áreas se comparten.
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.
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.
report_factsMS-04Los hechos que Reportes arma con los eventos de los demás módulos: entrada, salida y visitas de cada paso; errores por punto de detección; tiempo de Aprobado a Publicado por canal; latencia de calculados; uso de la API de terceros por minuto y conteos diarios de visibles. No es fuente de ningún dato de operación.
identity_receiptsMS-13Los planes de identidad por confirmar (vencen a los 10 minutos) y el recibo de cada cambio confirmado de usuarios, roles y terceros, con lo que respondió el proveedor de identidad.

3. Los eventos

Cada módulo guarda y, en la misma transacción, deja el evento en su outbox; de ahí sale al tópico. La entrega es al menos una vez: quien consume ignora el eventId repetido y la versión vieja.

TópicoLo publicaPara quéTipos
catalog.governance.changedMS-01Avisar que cambió la configuración del catálogo.ATTRIBUTE_CHANGED, LOV_CHANGED, LOV_VALUE_CHANGED, TEMPLATE_CHANGED, TEMPLATE_VIEW_CHANGED, REFERENCE_TABLE_CHANGED, RULE_CHANGED, TAXONOMY_NODE_CHANGED, CATEGORY_UPSERTED, CATEGORY_MOVED, CATEGORY_UNLINKED, CATEGORY_REPUBLISH_REQUESTED, ATTRIBUTE_GROUP_CHANGED
catalog.product.changedMS-02Avisar que cambió un producto, su estado o sus tareas.PRODUCT_CREATED, PRODUCT_UPDATED, PRODUCT_DELETED, VARIANT_LINKED, VARIANT_UNLINKED, CLASSIFICATION_CHANGED, MEDIA_CHANGED, STATUS_CHANGED, STATUS_CORRECTED, SKU_ASSIGNED, EAN_CHANGED, REJECTION_ADDED, TASK_CHANGED, OFFER_CREATED, CONFIG_CHANGED
catalog.product.publicationMS-02Pedir que un producto salga a sus canales, a SAP o a o9.PUBLICATION_REQUESTED, SAP_CREATION_REQUESTED, PLANNING_EXPORT_REQUESTED
catalog.delivery.resultMS-08Devolver el acuse de cada destino.DELIVERY_RESULT, EXTRACTION_READY
catalog.sap.inboundMS-07Avisar lo que llegó de SAP.SAP_ARTICLE_CREATED, SAP_ARTICLE_FAILED, SAP_MASTER_DATA_CHANGED
catalog.egress.filesD-ARCHIVOSEl almacén avisa que llegó un archivo nuevo de SAP.OBJECT_FINALIZE
catalog.asset.changedMS-11Avisar que un archivo se subió, se validó, se rechazó o se congeló.ASSET_UPLOADED, ASSET_VALIDATED, ASSET_REJECTED, ASSET_FROZEN, ASSET_DELETED, ASSET_JOB_FINISHED
catalog.studio.changedMS-12Avisar el avance de una muestra en el estudio.SAMPLE_RECEIVED, SHOT_COMPLETED, EDITION_COMPLETED, CAPTURE_COMPLETED, SAMPLE_RETURNED
catalog.identity.changedMS-13Avisar altas, bajas y cambios de permisos.USER_CHANGED, ROLE_CHANGED, PARTNER_CHANGED
catalog.ai.resultMS-15Entregar un resultado de IA que tardó (lotes y cargas masivas).AI_SUGGESTION_READY, AI_ENRICHMENT_READY, AI_QUALITY_READY
catalog.validation.resultMS-06Entregar la evaluación de una carga masiva, renglón por renglón.EVALUATION_DONE
idmc_post_productsMS-02 (temporal)Convivencia: lo que hoy reciben los backends de los fronts mientras se apagan.(contrato de hoy)
idmc_put_productsMS-02 (temporal)Convivencia: cambios de producto con el contrato de hoy.(contrato de hoy)
idmc_put_templateMS-01 (temporal)Convivencia: cambios de plantilla con el contrato de hoy.(contrato de hoy)
idmc_put_value-list-relationMS-01 (temporal)Convivencia: listas de valores con el contrato de hoy.(contrato de hoy)
idmc_post_lookMS-02 (temporal)Convivencia: looks con el contrato de hoy.(contrato de hoy)

4. Las reglas de las APIs

  • Escribir es en dos pasos. POST …/plans revisa y dice qué va a pasar sin escribir (es la validación en el momento); POST /api/v2/<módulo>-plans/{planId}/apply confirma y deja un recibo.
  • Cabeceras: Authorization y X-Request-Id siempre; Idempotency-Key en toda escritura; If-Match con la versión al cambiar algo que tiene versión.
  • Respuesta: {"success": true, "data": …}; los errores traen un código con nombre (VALIDATION_ERROR, VERSION_CONFLICT, PLAN_EXPIRED…), el detalle por campo y un correlationId.
  • Lo que tarda responde 202 con un recibo y avisa con un evento.
  • Tres puertas: el BFF del portal para las pantallas, el agente del estudio directo a Activos y el gateway de terceros. El BFF valida el token, aplica los permisos de pantalla y compone; no guarda datos ni decide reglas (decisión 19 del backend compartido).
  • Seguridad: el token se valida en la puerta y otra vez en cada módulo, que decide sus permisos de dominio con los roles de MS-13 (ADR-05). Los terceros usan credenciales de cliente registradas en MS-13.
  • Sin capa de compatibilidad (decisión 20): las rutas de hoy no se reconstruyen; sólo queda DELETE /productmanagement/proposals/upc-eans para el middleware de P360, hasta R3.

Fuentes

  1. [D] docs/arquitectura/por-epica/base/modulos.json, colecciones.json y eventos.json.
  2. [D] docs/arquitectura/omega-a-pim-headless/contratos-api.md §1 y §3, y datos/.
  3. [D] ADR-12 y ADR-05.