Cómo hacer un eCommerce escalable: arquitectura, stack y decisiones técnicas
Cómo hacer un eCommerce escalable: arquitectura técnica, stack recomendado, decisiones clave. Hosting, base de datos, CDN, cache, monitorización. Lecciones aprendidas en proyectos reales de 1M+ de facturación.
Cómo hacer un eCommerce escalable: arquitectura, stack y decisiones técnicas
Hacer un eCommerce que soporte 100k visitas/día en Black Friday sin caerse, 0.5% tasa de conversión, y picos de tráfico 10x en campañas requiere decisiones técnicas desde el día 1. Aquí la arquitectura que recomiendo en 2026, basada en 8 años viendo tiendas online caerse (y otras escalar bien).
(Este artículo es parte de nuestro cluster CRO para eCommerce. Si ya tienes tienda, mira el Shopify vs WooCommerce 2026.)
El mito de "escalar cuando sea necesario"
Realidad cruel: si tu eCommerce se cae en Black Friday, pierdes el 70% de las ventas que podrías haber hecho (datos de Baymard). No es el momento de "escalar cuando haga falta". Es el momento de diseñar para escalar desde el día 1.
Ejemplo real: cliente con 8M €/año, falló en Black Friday por usar un hosting compartido de 15 €/mes. Perdió 280.000 € ese día. Después cambió a arquitectura escalable y nunca más falló.
Las 4 métricas que importan para escalar eCommerce
Antes de optimizar la arquitectura, entiende qué mides:
1. P99 latency (no promedio): el 1% de requests más lentos. Tu problema está ahí 2. Conversion rate: a > 3s de LCP, pierdes 7% de conversión por cada 100ms (Akamai) 3. Uptime: el 99.9% es "3 nines" = 8.7 horas de caída/año. Black Friday = 1 hora = 99.99% ya roto 4. CPU/DB load en picos: 80% sostenido = problema. 50% pico Black Friday = bien
Arquitectura en 4 capas
` ┌─────────────────────────────────────┐ │ CAPA 1: EDGE (CDN + WAF) │ │ Cloudflare + WAF + cache edge │ └──────────────┬──────────────────────┘ │ ┌──────────────▼──────────────────────┐ │ CAPA 2: FRONTEND (SSG + ISR) │ │ Astro/Next.js + Vercel/Netlify │ └──────────────┬──────────────────────┘ │ ┌──────────────▼──────────────────────┐ │ CAPA 3: API + BUSINESS LOGIC │ │ Node.js/Edge functions + queue │ └──────────────┬──────────────────────┘ │ ┌──────────────▼──────────────────────┐ │ CAPA 4: DATA │ │ PostgreSQL + Redis + S3 │ └─────────────────────────────────────┘ `
Capa 1: Edge (CDN + WAF)
Objetivo: servir el 80% del contenido sin tocar tu servidor.
Componentes:
Configuración crítica:
Coste: 0-25 €/mes según tráfico.
Capa 2: Frontend (SSG + ISR)
Objetivo: servir HTML pre-renderizado o regenerado en build.
Stack recomendado 2026 (mi opción para eCommerce):
Hosting:
Decisiones críticas:
Capa 3: API + Business Logic
Objetivo: manejar operaciones dinámicas (carrito, checkout, stock, precios).
Stack recomendado 2026:
Patrones clave:
Capa 4: Data (PostgreSQL + Redis + S3)
Base de datos principal: PostgreSQL 16+
Por qué PostgreSQL:
Cuándo escalar a otras DBs:
Cache: Redis 7+
Cuándo usar Redis:
NO usar Redis para:
Storage de assets: S3 + Cloudflare R2
Por qué:
Patrón recomendado:
El stack concreto que recomiendo en 2026
Para tienda pequeña/media (< 1M €/año, < 50k visitas/mes)
` Frontend: Astro 6 + SolidJS (interactividad selectiva) Hosting: Cloudflare Pages (gratis hasta 100k visitas) CMS: Sanity o Strapi (o tu Supabase actual) DB: Supabase (PostgreSQL managed) Cache: Upstash Redis (serverless) Auth: Supabase Auth Pagos: Stripe Email: Resend (transactional) + Klaviyo (marketing) Búsqueda: Meilisearch (Typesense) o Algolia Storage: Cloudflare R2 Monitor: Sentry + Plausible `
Coste mensual típico: 50-150 €.
Para tienda grande (> 1M €/año, > 50k visitas/mes)
` Frontend: Next.js 15 + React 19 (App Router) Hosting: Vercel Pro (20 $/mes) o auto-hospedaje CMS: Sanity (con GROQ para queries complejas) DB: Neon (PostgreSQL serverless) o Supabase Pro Cache: Upstash Redis (regional) Auth: Clerk o Auth0 Pagos: Stripe (con SCA y 3DS) Email: Resend + Klaviyo Búsqueda: Algolia (con replicas) Storage: AWS S3 + CloudFront Cola: Inngest (serverless) o BullMQ (si self-hosted) Monitor: Sentry + Plausible + Datadog CI/CD: GitHub Actions + Vercel `
Coste mensual típico: 500-2000 €.
Decisiones críticas que tomar ANTES de empezar
1. Headless vs Monolítico
Monolítico (Shopify, WooCommerce):
Headless (Astro + Shopify Storefront API, Astro + WooCommerce Headless):
Mi recomendación para 2026:
2. Multi-tenant o single-tenant
Single-tenant (1 eCommerce, 1 DB): más simple.
Multi-tenant (varias tiendas, 1 backend): ahorra costes pero suma complejidad.
Mi recomendación: single-tenant hasta 5M €/año. Multi-tenant solo si tienes marketplace o varias marcas independientes.
3. Multi-región
Una región (ej: solo España): un CDN, un DB.
Multi-región (ej: España + LATAM): DBs en cada región, sincronización, GDPR.
Mi recomendación: una región hasta 5M €/año. Multi-región si tienes > 30% de tráfico internacional.
Patrones de cache para eCommerce escalable
Cache de productos
`typescript // Cache de producto individual (1h TTL) async function getProduct(id: string) { const cached = await redis.get(product:${id}); if (cached) return JSON.parse(cached);
const product = await db.products.findUnique({ where: { id } }); if (product) { await redis.setex(product:${id}, 3600, JSON.stringify(product)); } return product; } `
Pero ojo con stock: si el stock cambia, invalida el cache.
`typescript // Invalidar cache al actualizar stock await db.products.update({ where: { id }, data: { stock: newStock } }); await redis.del(product:${id}); await redis.del(products:category:${product.categoryId}); `
Cache de listado de productos
Patrón: cache de páginas de categoría con stale-while-revalidate.
` GET /category/[slug] → 1. Buscar en cache (HTML cacheado por 1h) 2. Si hit: devolver + actualizar en background 3. Si miss: generar, devolver, guardar `
Esto lo hace Next.js con revalidate o Astro con adapter hybrid.
Cache de queries frecuentes
Monitorización: saber ANTES de que se caiga
Herramientas esenciales
Real User Monitoring (RUM):
Application Performance Monitoring (APM):
Server monitoring:
Métricas clave a monitorizar:
| Métrica | Alerta si... | |---|---| | P99 latency | > 1s | | Error rate | > 0.5% | | CPU | > 70% sostenido | | DB connections | > 80% del pool | | Cache hit rate | < 80% | | Conversion rate | Baja > 20% en 1h | | Stock inconsistencies | Cualquiera (es bug) | | Failed payments | > 1% de intentos |
Manejo de picos (Black Friday, Cyber Monday, rebajas)
Pre-pico (1 mes antes)
Durante el pico (Black Friday)
Post-pico (después)
Conclusión: la arquitectura correcta depende del tamaño
No hay una arquitectura única para todos. La regla general:
Lo más importante: diseña para escalar desde el día 1. Migrar una arquitectura pequeña a una grande es MUCHO más caro que empezar bien.
¿Necesitas ayuda para diseñar la arquitectura de tu eCommerce? Escríbeme a hola@mjora.studio — primera consulta gratuita de 30 min.
---
Lee el Shopify vs WooCommerce 2026, la guía de email marketing con Klaviyo o las 7 mejoras de checkout optimization.