1. Resumen ejecutivo
Problema. Los canales de AndesRetail (e-commerce propio y marketplaces) hablan directo con cada sistema. Cada consulta de stock o precio golpea en línea al ERP (Enterprise Resource Planning, el sistema central de gestión, dueño de catálogo y precios) y al WMS (Warehouse Management System, el sistema de bodega, dueño del stock físico). Cada canal coordina a su manera la creación de órdenes contra el OMS (Order Management System, el sistema de órdenes) y nadie es dueño del stock que se puede vender. El resultado son caídas en promociones, sobreventa, órdenes pagadas sin confirmar y ninguna forma de seguir una orden de punta a punta.
Solución propuesta.
- Una capa de interoperabilidad entre los canales y los sistemas, con APIs estándar y versionadas para stock, precios, órdenes y notificaciones.
- Las consultas de stock y precio se responden desde un modelo de lectura propio, alimentado por eventos. La carga sobre ERP y WMS deja de depender del tráfico de los canales.
- La capa se hace dueña del stock vendible: reserva antes de aceptar una orden, con vencimiento.
- Crear orden es una sola saga orquestada (una secuencia de pasos con su forma de deshacerlos), con idempotencia y compensaciones: lo que se puede deshacer se deshace, lo que ya se cobró se termina.
- Cada sistema queda detrás de un adaptador que traduce y lo protege con límites de concurrencia. Sumar un sistema es sumar un adaptador.
- Seguridad uniforme: OAuth2 y OIDC (OpenID Connect), los estándares de autorización e identidad, con permisos por scope, políticas y cuotas por partner, y cifrado mutuo entre servicios. La capa nunca ve datos de tarjeta.
- Trazabilidad de punta a punta con un identificador de correlación en peticiones, eventos y auditoría.
- Es síncrono solo lo que la capa puede responder con sus propios datos; lo que depende de un tercero es asíncrono.
- Migración gradual, canal por canal, con vuelta atrás en cada paso. MVP (minimum viable product: la primera entrega útil en producción) en 4 a 6 semanas con un marketplace piloto.
- Cada requisito no funcional tiene una prueba automática definida para que la arquitectura no se degrade con el tiempo: unas ya son compuerta del pipeline y el resto se ejecuta aparte y entra a él según el roadmap.
Beneficio de negocio. Vender en promociones sin caídas; no prometer lo que no hay; saber siempre en qué va una orden; sumar un marketplace o cambiar un sistema en semanas y no en meses; y un solo lugar donde aplicar seguridad y cumplimiento.
Lo que cuesta. Más piezas que operar, consistencia eventual declarada en las lecturas, un crear orden que responde "aceptada" y no el resultado final, y un equipo de plataforma que hoy no existe. Las lecturas ya están medidas en el demo (sección 6.8): con el pico 10x, el AS-IS llega al timeout y el TO-BE responde en milisegundos sin cargar al legado. En órdenes, un reintento con la misma llave no duplica (0 de más en 20, contra 20 de 20 duplicadas en el AS-IS), y el pago rechazado, el webhook perdido y el OMS caído se resuelven sin intervención.