← Arquitectura por épica

FT-MIG-04 · Convivencia P360 ↔ nuevo PIM

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-MIG-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-MIG-04.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-MIG-04-convivencia-sincronizacion-y-corte.md.

En 30 segundos

Mientras P360 siga vivo es la fuente, y el Nuevo PIM tiene que seguirlo sin desfase aunque las pantallas ya trabajen sobre el PIM desde R1 y R2. Esta épica mantiene la copia al día, escribe en P360 por MS-03 lo que se cambia en las pantallas nuevas, detecta lo que se desvía y lleva el corte de R3: P360 queda sin tráfico y el PIM pasa a ser la fuente, con vuelta atrás probada.

  • Módulo dueño: MS-03 Migración y convivencia. También participan: MS-02 Producto, MS-05 Auditoría.
  • Etapa M · Migración. Recibe de otras épicas y entrega «PE-M · Producto migrado».
  • APIs: construye 4 y usa 7 que construyen otras épicas.
  • Eventos: publica 2 y consume 0.

1. Dónde encaja

Recibe

DeQué
FT-MIG-03 · Migración inicial de productos desde P360La carga completa de productos, conciliada y firmada antes de R2.
FT-MIG-02 · Migración de plantillas, atributos y listas de valoresLa copia del catálogo al día y conciliada.
FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…La tabla de equivalencias con P360 (P360_CODES) y cada cambio de estado para la convivencia.
FT-INT-06 · Avisos de cambios a Entrada Única y consumidoresEl interruptor por tópico para encender el emisor de avisos del PIM en la misma ventana en que se apaga el de P360.
FT-INT-01 · Publicación a e-commerceLa salida a la tienda sin broker, lista para encenderse en el corte.
FT-INT-02 · Publicación a OMS, DWH y SeñalizaciónLas salidas a OMS, Señalización y DWH sin P360.
FT-INT-03 · Entrada de SKUs creados en SAPLa lectura del 122 lista para encenderse por interfaz en el corte.
FT-INT-04 · Catálogos maestros, precios y costos desde SAP/S4HLa lectura de los datos maestros de SAP lista para encenderse por interfaz en el corte.
FT-PLT-10 · Fachada v1 compatible con P360 para Entrada Única y ForoCada operación de plantilla de P360 sin tráfico del navegador, lista para quitarse, y el interruptor de los dos avisos de catálogo para el corte.
FT-PRD-09 · Contrato de propuestas con Entrada ÚnicaLas rutas de Entrada Única y de P360 que dejan de llamarse en R2, cada una con su reemplazo, y el adaptador upc-eans que se borra con P360 en R3.
FT-RAC-04 · Consistencia entre sistemas y gobierno de datos proactivoEl universo conciliado y la confirmación escrita de Gobierno de Datos antes de cortar.
FT-RAC-07 · Reportes, exportes, importes y búsquedas por atributosLos reportes del portal resueltos con datos del PIM, condición para apagar el backend de Entrada Única.

Entrega

AQué
PE-M · Producto migradoCada cambio de P360 aplicado en la copia hasta el corte y, desde el go, el producto con el PIM como fuente y sus salidas encendidas.
FT-ARQ-01 · Núcleo headlessLa escritura en P360 por MS-03 (API-03-009 y API-03-010) que usa la API de producto mientras P360 sea la fuente.
FT-USR-01 · Identidad y autenticación de usuarios internos…La corrida de usuarios de MS-03 que concilia P360, Entrada Única y Foro por la cuenta del proveedor de identidad, antes de que el directorio sea la fuente en R2.

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

Lee los recibos de cambio que ya escr…
Vuelve a leer completa cada familia q…
y 5 más

Leer la configuración del motor
Carga interna de la migración

Confirmar un plan de Producto

Escribir en P360 mientras sea la fuen…
Recibo de una escritura en P360
y 1 más

Tablero de la convivencia
Conciliación de una corrida
y 1 más

Carga de historia migrada

Deja sus archivos para MS-07 desde el…

Quitar un EAN (adaptador para P360)

EAN_CHANGED

bitácora

Gobierno de Datos

Administración del catálogo

Entrada Única · Vendor Center

BFF del portal

★ MS-03 Migración y convivencia

MS-02 Producto

MS-05 Auditoría

Archivos e imágenes

Base pim

Eventos

P360

SAP

Contexto de FT-MIG-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 CenterBase·pimMS-02 ProductoP360MS-03 Migración y convivenciaEntrada Única · Vendor CenterBase·pimMS-02 ProductoP360MS-03 Migración y convivenciaGobierno de DatosBFF1. Lee los recibos de cambio que ya escribe P3602. Vuelve a leer completa cada familia que cambió3. Traduce los estados con la tabla P360_CODESGET /api/v2/workflow/config/{type}4. Compara la huella y guarda su cursor5. Reemplaza la familia con origen P360_SYNCPOST /internal/product/bulk-load/products6. Corrige un producto en la pantalla nueva7. Confirma el cambio que Producto ya validóPOST /api/v2/product-plans/{planId}/apply8. Pide escribir el cambio en P360POST /internal/migration/p360-writes9. Aplica el cambio con los servicios de P36010. Recarga la familia como quedó en P360POST /internal/product/bulk-load/products11. Lee el recibo y cierra el del usuarioGET /internal/migration/p360-writes/{requestId}12. Revisa atraso, deriva y conexiones vivasGET /api/v2/migration/coexistence/statusGobierno de DatosBFF
Flujo principal de FT-MIG-04
Los pasos en texto
PasoDeAQué haceAPI o evento
1MS-03 Migración y convivenciaP360Lee los recibos de cambio que ya escribe P360—
2MS-03 Migración y convivenciaP360Vuelve a leer completa cada familia que cambió—
3MS-03 Migración y convivenciaMS-02 ProductoTraduce los estados con la tabla P360_CODESAPI-02-030
4MS-03 Migración y convivenciaBase pimCompara la huella y guarda su cursor—
5MS-03 Migración y convivenciaMS-02 ProductoReemplaza la familia con origen P360_SYNCAPI-02-056
6Gobierno de DatosEntrada Única · Vendor CenterCorrige un producto en la pantalla nueva—
7Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Confirma el cambio que Producto ya validóAPI-02-057
8MS-02 ProductoMS-03 Migración y convivenciaPide escribir el cambio en P360API-03-009
9MS-03 Migración y convivenciaP360Aplica el cambio con los servicios de P360—
10MS-03 Migración y convivenciaMS-02 ProductoRecarga la familia como quedó en P360API-02-056
11MS-02 ProductoMS-03 Migración y convivenciaLee el recibo y cierra el del usuarioAPI-03-010
12Entrada Única · Vendor CenterMS-03 Migración y convivencia (por el BFF)Revisa atraso, deriva y conexiones vivasAPI-03-007

3.1 Deriva: lo que la sincronización no vio

Entrada Única · Vendor CenterMS-02 ProductoBase·pimP360MS-03 Migración y convivenciaEntrada Única · Vendor CenterMS-02 ProductoBase·pimP360MS-03 Migración y convivenciaBFF1. Cuenta cada día los Identifier vivos por rango2. Calcula cada semana la huella de cada familia3. Reporta como deriva lo que no coincide4. Recarga la familia desviadaPOST /internal/product/bulk-load/products5. Revisa la deriva de la semanaGET /api/v2/migration/reconciliation?runId=6. Firma dos semanas sin derivaPOST /api/v2/migration/runs/{runId}/signoffsBFF
Deriva: lo que la sincronización no vio

3.2 Corte de R3 con go/no-go y vuelta atrás

ArchivosSAPEntrada Única · Vendor CenterBase·pimMS-05 AuditoríaMS-02 ProductoP360MS-03 Migración y convivenciaArchivosSAPEntrada Única · Vendor CenterBase·pimMS-05 AuditoríaMS-02 ProductoP360MS-03 Migración y convivenciaBFFAdministración del catálogo1. Retiene escrituras y lee el último tramo2. Aplica los últimos cambios de P360POST /internal/product/bulk-load/products3. Carga el último tramo de la historiaPOST /internal/audit/bulk-load/status-history4. Corre la conciliación final y las compuertas5. Revisa que P360 ya no tenga tráficoGET /api/v2/migration/coexistence/status6. El comité de corte firma el go7. Registra el go con su evidenciaPOST /api/v2/migration/runs/{runId}/signoffs8. Pide su primer bloque de IdentifierPOST /internal/migration/identifier-blocks9. Reserva el bloque en la secuencia de la base de P36010. Deja sus archivos para MS-07 desde el goBFFAdministración del catálogo
Corte de R3 con go/no-go y vuelta atrás

3.3 P360 quita un EAN (adaptador hasta R3)

MS-03 Migración y convivenciaEntrada Única · Vendor CenterEventosBase·pimMS-02 ProductoP360MS-03 Migración y convivenciaEntrada Única · Vendor CenterEventosBase·pimMS-02 ProductoP360BFF1. Quita un EAN con el contrato de hoyDELETE /productmanagement/proposals/upc-eans2. Libera el EAN en el registro de identificadores3. Avisa el EAN liberadoEAN_CHANGED4. Mide el tráfico del adaptador hasta R3GET /api/v2/migration/coexistence/statusBFF
P360 quita un EAN (adaptador hasta R3)

4. Si algo sale mal

  • P360 rechaza una escritura que el PIM ya validó. MS-03 deja el recibo como rechazado con el motivo de P360; Producto no cambia su copia y quien hizo el cambio ve el rechazo en su recibo. Si P360 dijo que no, nada se reintenta solo.
  • La familia cambió en P360 mientras alguien la editaba en la pantalla nueva. La escritura responde 409 VERSION_CONFLICT con la versión de P360; el portal recarga la familia y la persona decide sobre lo vigente. Las pantallas de P360 de lo que ya se mudó quedan en sólo lectura.
  • La sincronización se atrasa más de 60 minutos. Se enciende la alarma del tablero de convivencia; los recibos de P360 son durables, así que MS-03 retoma desde su cursor sin perder ni duplicar.
  • Falla una compuerta del go. No hay go: P360 nunca dejó de ser la fuente, se liberan hacia P360 las escrituras retenidas y todo sigue como en R2. Volver toma menos de una hora.
  • Hay que volver a P360 después del go. Hasta el día 14, MS-03 sigue escribiendo en P360 cada cambio del PIM con los procesos de salida de P360 apagados; volver es regresar Producto al modo de convivencia sin recapturar nada. Después del día 14 sólo se corrige hacia adelante.

5. APIs

Las que construye esta épica (4)

POST /internal/migration/p360-writes · Escribir en P360 mientras sea la fuente
CampoValor
APIAPI-03-009 · MS-03 Migración y convivencia
Para quéMientras P360 sea la fuente de un dato, el módulo dueño no escribe en su copia: le pide a MS-03 que aplique en P360 el cambio que ya validó. MS-03 lo aplica con los servicios de P360, en orden por familia, vuelve a leer la familia y la recarga en el dueño. Responde 202 con su recibo.
En esta épicaEscribir en P360 el cambio que validó Producto
Quién la llamaMS-02 Producto, MS-01 Catálogo
PermisoSólo MS-02 y MS-01 (cuenta de servicio)
CabecerasAuthorization, X-Request-Id, Idempotency-Key

Request

{
  "writeId": "wr-55e0c2-1",
  "origin": {
    "module": "MS-02",
    "requestId": "req-55e0c2",
    "actor": {
      "area": "GOBIERNO_DE_DATOS",
      "role": "Gobierno"
    }
  },
  "entity": {
    "type": "PRODUCT",
    "productId": "PRD-0004812",
    "legacyIdentifier": "1033301",
    "expectedVersion": 7
  },
  "operation": "UPDATE_VALUES",
  "changes": [
    {
      "path": "variants[VAR-0004812-01].attributes.COLOR",
      "before": "ROJO",
      "after": "AZUL"
    },
    {
      "path": "attributes.ALTO_EMPAQUE",
      "before": null,
      "after": "32 cm"
    }
  ]
}

Response · 202

{
  "success": true,
  "data": {
    "requestId": "req-p3w-7781",
    "status": "ACCEPTED",
    "receiptUrl": "/internal/migration/p360-writes/req-p3w-7781"
  }
}

Errores

HTTPCódigoCuándo
409VERSION_CONFLICTLa familia cambió en P360 después de la versión que validó el dueño
422BUSINESS_ERRORP360 ya no es la fuente de ese dato: después del corte el dueño escribe directo
503DEPENDENCY_UNAVAILABLEP360 no responde; la escritura queda pendiente y se reintenta en orden
409IDEMPOTENCY_MISMATCHSe repite la llave con otro cambio
GET /internal/migration/p360-writes/{requestId} · Recibo de una escritura en P360
CampoValor
APIAPI-03-010 · MS-03 Migración y convivencia
Para quéDice cómo va una escritura en P360: pendiente, aplicada (con la versión que quedó en la copia del dueño) o rechazada por P360 con su motivo, para que el dueño cierre el recibo de quien hizo el cambio.
En esta épicaRecibo de la escritura en P360
Quién la llamaMS-02 Producto, MS-01 Catálogo
PermisoSólo MS-02 y MS-01 (cuenta de servicio)
CabecerasAuthorization, X-Request-Id
ParámetrosrequestId = req-p3w-7781

Request

null

Response · 200

{
  "success": true,
  "data": {
    "requestId": "req-p3w-7781",
    "writeId": "wr-55e0c2-1",
    "status": "APPLIED",
    "p360": {
      "operation": "UPDATE_VALUES",
      "answeredAt": "2026-10-18T15:04:09Z",
      "result": "OK"
    },
    "reloadedVersion": 8,
    "finishedAt": "2026-10-18T15:04:11Z"
  }
}

Errores

HTTPCódigoCuándo
404NOT_FOUNDEl recibo no existe o ya venció (se guardan 30 días)
GET /api/v2/migration/coexistence/status · Tablero de la convivencia
CampoValor
APIAPI-03-007 · MS-03 Migración y convivencia
Para quéCómo va la convivencia: quién es la fuente de cada dato, atraso de la sincronización desde P360, último barrido, diferencias de presencia y de huella, escrituras pendientes hacia P360 y, por cada conexión de P360, su reemplazo y su tráfico. Es la evidencia para cortar y para apagar P360.
En esta épicaTablero de convivencia: atraso, deriva, escrituras y conexiones vivas
Quién la llamaBFF del portal
PermisoMIG-ADMIN y el comité de corte
CabecerasAuthorization, X-Request-Id
También la usanFT-RAC-08

Request

null

Response · 200

{
  "success": true,
  "data": {
    "phase": "R2",
    "source": {
      "catalog": "P360",
      "products": "P360"
    },
    "sync": {
      "receipts": {
        "lagSeconds": 340,
        "p95LagSeconds": 610,
        "lastPosition": "rcpt-88412311",
        "alarm": false
      },
      "groupSweep": {
        "lastRunAt": "2026-10-18T15:00:00Z",
        "diffs": 0
      },
      "presence": {
        "lastRunAt": "2026-10-18T06:00:00Z",
        "missing": 3,
        "extra": 0
      },
      "hash": {
        "lastFullRunAt": "2026-10-12T04:00:00Z",
        "diffs": 0,
        "weeksWithoutDrift": 2
      }
    },
    "writesToP360": {
      "pending": 4,
      "failedLast24h": 1,
      "p95Seconds": 6
    },
    "connections": [
      {
        "id": "S4",
        "name": "Productos a la tienda por el broker",
        "replacement": "MS-08 al Product Data Service",
        "trafficLast7d": 0
      },
      {
        "id": "E15",
        "name": "122 de ECC",
        "replacement": "MS-07",
        "trafficLast7d": 3104
      },
      {
        "id": "UPC-EANS",
        "name": "P360 quita un EAN (API-02-074)",
        "replacement": "Se borra con P360 en R3",
        "trafficLast7d": 57
      },
      {
        "id": "EU-SYNC",
        "name": "Conciliación de P360 contra la base de Entrada Única",
        "replacement": "Se apaga; la cubre la conciliación de MS-03",
        "trafficLast7d": 0
      }
    ],
    "readyToCut": false,
    "blockers": [
      "E15 todavía lo lee P360"
    ]
  }
}

Errores

HTTPCódigoCuándo
403AUTHORIZATION_ERRORQuien llama no opera la migración
POST /internal/migration/identifier-blocks · Reservar un bloque de Identifier
CampoValor
APIAPI-03-008 · MS-03 Migración y convivencia
Para quéReserva un bloque de 1,000 Identifier en la secuencia de la base de P360 que comparte P360, para que lo que cree el PIM después del corte no choque con P360 mientras siga encendido y una vuelta atrás no repita números. Deja el bloque en el mapa de identificadores.
En esta épicaBloques de Identifier mientras P360 siga encendido
Quién la llamaMS-02 Producto
PermisoSólo MS-02 (cuenta de servicio)
CabecerasAuthorization, X-Request-Id, Idempotency-Key
También la usanFT-PRD-01

Request

{
  "requestedBy": "catalog-product",
  "size": 1000,
  "reason": "Se gastó el 80 % del bloque 1033000"
}

Response · 200

{
  "success": true,
  "data": {
    "blockId": "blk-1034000",
    "from": "1034000",
    "to": "1034999",
    "reservedAt": "2027-05-03T10:15:00Z"
  }
}

Errores

HTTPCódigoCuándo
503DEPENDENCY_UNAVAILABLEla base de P360 no responde; MS-02 sigue con sus dos bloques de reserva
409IDEMPOTENCY_MISMATCHSe repite la llave con otro tamaño

Las que usa y construye otra épica (7)

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-02-030GET /api/v2/workflow/config/{type}Leer la tabla de equivalencias de estados con P360 (P360_CODES)FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-02-056POST /internal/product/bulk-load/productsReemplazar en la copia la familia que cambió en P360FT-ARQ-01 · Núcleo headless
API-02-057POST /api/v2/product-plans/{planId}/applyConfirmar en Producto el cambio hecho en la pantalla nuevaFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-03-003GET /api/v2/migration/reconciliation?runId=Deriva de la semana y conciliación finalFT-MIG-02 · Migración de plantillas, atributos y listas de valores
API-03-011POST /api/v2/migration/runs/{runId}/signoffsFirmar dos semanas sin deriva y el goFT-MIG-01 · Perfilado y limpieza previa
API-05-006POST /internal/audit/bulk-load/status-historyCargar el último tramo de la historia de estadosFT-ARQ-02 · Bitácora inmutable y versionado de producto, plantilla y…
API-02-074DELETE /productmanagement/proposals/upc-eansEl único adaptador que queda: P360 quita un EAN con el contrato de hoy, hasta R3Capa temporal hasta R3

6. Eventos

Publica

EventoCuándoQuién lo consume
catalog.product.changed/PRODUCT_UPDATEDProducto aplica en su copia un cambio de P360, con origen P360_SYNCFT-ACT-05, FT-ARQ-02, FT-IA-01, FT-PLT-07, FT-PRD-05, FT-RAC-06
catalog.product.changed/EAN_CHANGEDP360 quita un EAN por el adaptador upc-eansFT-ARQ-02, FT-PRD-03

7. Datos

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

ColecciónDueñoQué guardaEsta épica
mig_runsMS-03Cada corrida de migración con sus conteos.escribe
mig_reconciliationMS-03Las diferencias entre P360 y el Nuevo PIM durante la convivencia.escribe
mig_issuesMS-03Lo que no se pudo migrar y por qué.escribe
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.escribe
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.escribe
productsMS-02La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos.escribe
audit_eventsMS-05Quién cambió qué, cuándo, desde dónde, con el antes y el después.escribe
product_reference_tablesMS-02Configuración del motor de estados y del matching: transiciones, estados externos y pesos.lee

8. Historias que cubre

HistoriaPrioridadCómo la cubre
FT-MIG-04·H1 · Incremental sin derivaP1pasos 1, 2, 3, 4, 5; API-02-056
FT-MIG-04·H2 · DerivaP1flujo «Deriva: lo que la sincronización no vio»; API-03-003, API-03-011
FT-MIG-04·H3 · Un solo maestroP1pasos 6, 7, 8, 9, 10, 11; API-03-009, API-03-010
FT-MIG-04·H4 · Corte coordinado y reversibleP1flujo «Corte de R3 con go/no-go y vuelta atrás»; API-03-011, API-03-008
FT-MIG-04·H5 · Reemplazar los cinco módulos y todas las conexionesP1pasos 12; flujo «P360 quita un EAN (adaptador hasta R3)»; API-03-007, API-02-074
FT-MIG-04·H6 · Sincronizar mientras convivenP1pasos 1, 2, 5; flujo «Deriva: lo que la sincronización no vio»

9. Decisiones de esta épica

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

  • D-MIG-04-1. Un solo maestro por dato: hasta el corte de R3, P360 es la fuente de producto y de catálogo, y el PIM es una copia que MS-03 mantiene por cuatro vías (recibos durables con relectura de la familia, barrido de grupos cada 600 s, presencia diaria por rangos y huella semanal). Sólo MS-03 escribe en la copia, por la carga interna. Por qué: Sólo con eventos a Omega le faltaron 6,828 productos; un consumidor nuevo de la cola de P360 le quitaría mensajes a los que ya existen. Se apoya en PD-11, DMS-85, DMS-76.
  • D-MIG-04-2. Las pantallas cambian una sola vez al BFF por oleadas (R1 catálogo, categorías, activos y avisos; R2 propuestas, variantes, carga masiva, reportes, el módulo M6 y el portal del estudio), sin capa de compatibilidad. Mientras P360 sea la fuente, Producto valida con sus reglas y escribe en P360 por MS-03 (API-03-009): MS-03 aplica con los servicios de P360, en orden por familia, relee y recarga la copia en segundos, y el recibo del usuario se cierra con el de MS-03. Por qué: Es la decisión 20 que adopta ADR-12: nadie más que MS-03 escribe en P360 y la copia nunca se adelanta a la fuente, así que no hay dos maestros. Se apoya en ADR-12, PD-12, RSG-48.
  • D-MIG-04-3. PD-12 queda así: el catálogo no se congela ni corta antes. Si su administración pasa al PIM en R1, se escribe en P360 por MS-03 igual que el producto, y lo que los servicios de P360 no acepten se sigue editando en P360 hasta R3. Catálogo y producto pasan juntos a ser fuente en el corte de R3. Por qué: Congelar de R1 a R3 dejaría a Gobierno de Datos meses sin ajustar plantillas, y cortar el catálogo antes obligaría a P360 a validar productos con un catálogo que ya no es suyo. Se apoya en PD-12, DEC-PLT-13.
  • D-MIG-04-4. Los cambios de la convivencia avisan con los eventos normales del dueño y origen P360_SYNC, para la bitácora y las cachés; los adaptadores los ignoran hasta el go porque P360 sigue entregando a los destinos. La carga completa sigue sin eventos (D-ARQ-01-7). Por qué: Sin aviso, las cachés de vistas y la bitácora no verían los cambios de meses de convivencia; sin el filtro por origen, se publicaría dos veces. Se apoya en DMS-81, DEC-65, FT-ARQ-01.
  • D-MIG-04-6. Corte de R3 con guion y go/no-go: retener escrituras hacia P360, último tramo, conciliación final, valor de la secuencia y primer bloque de Identifier, siembra del estado de entrega y firma del comité. A los criterios G1–G7 del plan se suma G8: cada conexión de P360 con reemplazo y tráfico cero (API-03-007). En el go se encienden MS-07, MS-08 y MS-10 por interfaz y el emisor de avisos del PIM en la misma ventana en que se apaga el de P360; no se republica el catálogo. A más tardar en R3 se apagan, cuando su tráfico llega a cero, el backend de Entrada Única, el servicio de catálogo de Foro, el el servicio de usuarios de Foro y P360. Por qué: Nada se apaga mientras tenga una conexión sin reemplazo o tráfico; encender cada salida en la ventana evita dos productores. Se apoya en DMS-87, DMS-88, RN-MIG-07, FT-INT-06.
  • D-MIG-04-7. Vuelta atrás: antes del go no hay nada que deshacer, porque P360 nunca dejó de ser la fuente. Del go al día 14, MS-03 sigue escribiendo en P360 cada cambio del PIM con los procesos de salida de P360 apagados, y volver es regresar Producto al modo de convivencia; los fronts no cambian de dirección porque siempre llaman al BFF. Al día 14 se apaga la escritura y P360. Por qué: Sin capa de compatibilidad ya no se vuelve cambiando la URL de los fronts; mantener P360 al día 14 días evita recapturar a mano. Se apoya en DMS-89, PD-12.
  • D-MIG-04-8. Desde el go y mientras P360 siga encendido, Producto toma bloques de 1,000 Identifier de la secuencia de la base de P360 por MS-03 (API-03-008) con dos de reserva; al apagar P360 sigue con su contador propio. Antes del go el PIM no crea productos: los crea P360 por la escritura de MS-03. Por qué: Una vuelta atrás no debe repetir números que ya dio el PIM. Se apoya en DMS-78, DMS-83.
  • D-MIG-04-9. La convivencia sigue el orden de las oleadas: catálogo y usuarios antes de R1, productos antes de R2. La corrida de usuarios (tipo USERS de API-03-001) concilia por la cuenta del proveedor de identidad a los usuarios de P360, Entrada Única y Foro antes de que el directorio sea la fuente en R2; las contraseñas no se migran. Por qué: Cada pantalla que cambia al BFF necesita su copia completa y a sus usuarios desde su primer día. Se apoya en ADR-12, FT-USR-01.

Qué falta decidir

IDQué falta
PD-11Probar en QA que un cambio de valor mueve el recibo y la fecha de la familia en P360 (Arquitectura con el equipo de P360).
PD-12Confirmar qué del catálogo y del producto aceptan los servicios de P360 para la escritura por MS-03.
DUD-12Mecanismo de sincronización y orden de corte probados en el ensayo de convivencia.
DUD-13Calendario de ensayos y del corte contra la UAT.
PD-10Si el broker sigue para OMS y Mirakl después de R3.

Fuentes

  1. [D] trazabilidad/features/FT-MIG-04-convivencia-sincronizacion-y-corte.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.