Arquitectura de softwareLa noche del examen fue evidencia, no una garantía — NovaCommerce 5
Dos exámenes reales, un error al reducir nodos y un modelo útil. La revisión final separa observaciones, extrapolación, costes y pruebas pendientes.
Un frontend independiente puede abrir una experiencia valiosa, pero necesita responsables. Compara todo el ciclo y conserva precios, stock, pedidos y pagos en un motor autorizado.
Autor
Anichur Rahaman

Un minorista tiene una web y 3,000 productos. En la reunión del lunes piden una app como la del competidor. La agencia propone una web headless nueva. Antes de elegir framework, operaciones pregunta: ¿necesitamos otra web, una app o mejorar el recorrido de compra existente?
Es una escena didáctica, no un resultado observado. Headless puede ser adecuado para una sola web; varios canales no aseguran rentabilidad. La decisión depende de una capacidad valiosa, un diseño operable y alguien que siga sosteniéndolo en el tercer año.
Una tienda integrada o acoplada se suministra y mantiene como parte de la plataforma de comercio. Puede tener API, workers, CDN y varios componentes desplegados. No implica un solo proceso/servidor ni un tema cerrado sin personalización.
Un storefront headless es una aplicación de presentación operada aparte que usa interfaces de comercio. El motor puede seguir ofreciendo tienda integrada o checkout alojado. La etiqueta no demuestra que cada acción necesaria tenga API. El híbrido conserva algunos recorridos integrados y añade una app o experiencia concreta sobre el mismo núcleo.
Composable significa seleccionar e integrar capacidades. No obliga a proveedor distinto por función, microservicios ni un alojamiento específico. Cada servicio adicional exige evaluar contratos, identidad, observabilidad y fallos.
Asigna merchandising, vista previa, accesibilidad, traducciones/RTL, privacidad/consentimiento, analítica, SEO, extensiones, parches e incidentes fuera de horario. Hay herramientas para ambos modelos; no es justo asumir “todo gratis en el tema” o “todo desde cero en headless”. Una agencia puede ser responsable permanente si existen contrato, accesos, salida y capacidad de soporte.
La tabla es un presupuesto anual inventado en una unidad monetaria, no cotización, encuesta salarial ni precio StoreConsole. Ambos incluyen mantenimiento y QA/seguridad. Se excluyen costes comunes del motor solo suponiéndolos iguales; añade diferencias reales y no dupliques horas del equipo.
| Operación anual | Integrada | Frontend separado |
|---|---|---|
| Mantenimiento UI y soporte | 24,000 | 54,000 |
| Alojamiento y CDN asignados | 6,000 | 12,000 |
| QA, accesibilidad y seguridad | 8,000 | 18,000 |
| Vista previa, analítica e idiomas | 4,000 | 12,000 |
| Total operación anual | 42,000 | 96,000 |
Supón construcción/migración inicial 20,000 para la tienda integrada y 80,000 para frontend independiente. Operación anual 42,000 frente a 96,000:54,000 extra. En tres años sin descuento: 20,000+3×42,000=146,000 y 80,000+3×96,000=368,000; diferencia 222,000.
Con contribución incremental ilustrativa 25%, 54,000÷0.25=216,000 de ventas adicionales anuales cubren solo la operación extra. Repartir los 60,000 iniciales adicionales en tres años añade 20,000 anuales: 74,000÷0.25=296,000 de ventas adicionales al año cubren esta comparación simple. No predice ventas, fecha de recuperación de efectivo ni resultados garantizados.
La contribución descuenta todos los costes variables relevantes: mercancía, pagos, preparación/envío y devoluciones/soporte esperados; no es solo margen bruto. Modela descuentos, incertidumbre, financiación/impuestos y beneficios no comerciales aparte. Compartir API permite reutilización, pero cuatro canales no dividen la factura total entre cuatro: cada uno mantiene diseño, pruebas y operación.
Audita variantes, precios por cliente, monedas, disponibilidad, cambios del carrito, envío, impuestos, descuentos, métodos de pago, pedidos, devoluciones y cuentas. Una API de catálogo no basta. Comprueba contratos versionados, límites, extensiones, errores y compatibilidad con los módulos activos necesarios.
El frontend presenta una cotización y recoge intención; el motor autorizado valida permisos, reglas vigentes y total aprobado. No copies reserva de stock, impuestos o descuentos en cada app. Precio almacenado y disponibilidad mostrada no autorizan aceptar el pedido. Si cambian cesta o condiciones, solicita la nueva confirmación correspondiente.
La guía de autorización OWASP se aplica a cada solicitud/objeto. Ocultar un botón, conocer un ID o iniciar sesión no permite acceder a otro cliente/entidad. No expongas secretos privilegiados al navegador. Separa caché pública de cuenta/carrito/cotización y contempla mercado, moneda y permisos pertinentes.
Volver de la pantalla de pago no demuestra cobro. La guía de fulfillment Stripe ilustra confirmación de servidor y tratamiento sin duplicados; importan estado real y métodos asíncronos. Conserva identidad de operación, consulta resultados desconocidos antes de cobrar otra vez y recupera fallos transitorios con backoff limitado y responsable. Cambiar al otro frontend no crea otro pedido ni otro cargo.
Los objetivos buenos de Core Web Vitals son LCP≤2.5 s, INP≤200 ms y CLS≤0.1 en el percentil 75, separando móvil/escritorio. Lighthouse en laboratorio no es esa medición de campo. La arquitectura no acredita cumplir ninguno.
Renderizado de servidor y generación estática pueden reducir trabajo del navegador; origen lento, imágenes, fuentes, hidratación y terceros siguen influyendo. INP incluye demora de entrada, procesamiento y presentación, no solo JavaScript del framework. Caché de borde protege lecturas públicas en ambos modelos; escrituras y estado privado necesitan capacidad y corrección.
La guía SEO JavaScript de Google explica rastreo/renderizado. Ofrece contenido útil, enlaces rastreables, estados correctos y metadatos consistentes. Inspecciona productos renderizados, canonicals, rutas traducidas y datos estructurados. HTML de servidor no garantiza indexación o posiciones.
Presupuesta alojamiento y cambios. La guía de self-hosting Next.js contempla coordinación de cachés/builds y versiones entre instancias. Un frontend separado exige API/UI compatibles, invalidación, monitoreo y recuperación; el integrado también requiere releases y pruebas cuidadosas. Que los editores demuestren vista previa y extensiones con su trabajo real.
La tabla propone experimentos, no ganador universal. Un configurador especializado puede justificar una sola web independiente; una app puede convivir con la web integrada. Un pico no decide por sí solo: quedan fallos de caché, escrituras y dependencias compartidas.
| Necesidad | Comparación/prueba útil |
|---|---|
| Compra estándar | Mejorar tienda actual frente a alternativas |
| App o canal de socios | Híbrido sobre motor común frente a reemplazar web |
| Experiencia web distintiva | Prototipo de capacidad; coste API/ciclo de vida |
| Cambios frecuentes de marketing | Edición con vista previa y publicación demostradas |
| Picos grandes | Medir caché fría, escritura y capacidad ante fallos |
| Capacidad de entrega limitada | Responsable creíble de mantenimiento en cada modelo |
Compara mejorar la tienda actual, un híbrido concreto y frontend separado contra el mismo resultado. Si el problema son imágenes pesadas o stock incorrecto en origen, identifica esa reparación. Puede costar menos; no inventes aumentos garantizados de conversión ni resultados en un plazo fijo.
Una evaluación empieza con el mapa de módulos y capacidades y termina con un recorrido de aceptación funcionando. Pide cobertura, responsables, soporte y salida/exportación. “Un backend” no prueba por sí solo que ambas tiendas se comporten igual.

Documenta baseline y objetivo antes de construir. Prueba productos/cuentas, teclado/accesibilidad, traducciones/RTL, móvil, impuestos/precios y analítica con consentimiento. Comparte el motor autorizado; evita dos rutas de escritura con reglas en competencia.
Una página aislada de lectura puede ser buen piloto, pero página a página no siempre es la frontera más segura. Identidad del carrito, cookies, autenticación, redirects y callbacks de pago cruzan páginas/dominios. Elige un recorrido coherente, cohortes estables y límites observados para parar; un porcentaje arbitrario no garantiza seguridad.
Conserva URLs útiles. Si cambian, sigue la guía de migración de Google para mapas, redirects permanentes y monitoreo. Mantén redirects al menos un año cuando corresponda y más para usuarios si es posible; no mandes páginas sin relación a un destino genérico. Verifica metadatos, sitemaps y rastreo antes/después.
Ensaya rollback con carritos existentes, referencias de pedido, sesiones activas, versiones desplegadas de esquema/API y pagos en curso. Volver a la UI anterior solo es seguro con contratos compatibles. No deshace cobros realizados ni borra pedidos nuevos. Concilia resultados y obligaciones pendientes sin repetirlos a ciegas.
Retira la ruta antigua tras evidencia de operación representativa y recuperación, no solo un buen lanzamiento. Conserva responsable de soporte y coste aceptado. La respuesta útil del lunes es una compra demostrada con operación sostenible, no un framework ni la promesa de resolver todos los problemas de ventas.
Revisado el 6 de noviembre de 2026. Anichur Rahaman, creador de StoreConsole. Costes y equilibrio son ejemplos, no precios, resultados observados ni previsiones financieras.
Sobre el autor
Anichur Rahaman
Seguir Leyendo