VPC en AWS con EC2 y RDS: guía práctica paso a paso
Monté desde cero una VPC en AWS con subredes públicas y privadas, EC2 y RDS. Estos son los pasos reales y los errores que me encontré en el camino.
Explora mis pensamientos sobre desarrollo web y tecnología
Monté desde cero una VPC en AWS con subredes públicas y privadas, EC2 y RDS. Estos son los pasos reales y los errores que me encontré en el camino.
Es tentador envolver tu función de búsqueda en unstable_cache para 'ganar performance'. En la práctica, casi siempre hace más daño que bien. Aquí por qué.
Un solo tag compartido entre funciones distintas puede invalidar el catálogo completo y cada página de producto con una sola llamada. Así se diseña esa relación.
Por separado son 3 conceptos simples. Combinados correctamente, dan páginas de producto casi instantáneas que igual reflejan cambios de stock al momento.
Le cambias un dato en la base de datos, refrescas la página y sigue mostrando lo viejo. No es un bug: son 3 capas de cache distintas trabajando en tu contra.
No es un cambio cosmético de nombre. proxy.ts corre en un runtime distinto, y el rename está directamente relacionado con una vulnerabilidad real.
Si aprendiste Prisma hace un año, este cambio de arquitectura te va a sorprender: el cliente ya no se conecta solo, necesita un adapter explícito.
Crear una orden y descontar stock parecen dos pasos separados, hasta que uno falla y el otro no. Así se evita ese estado inconsistente con Prisma.
Cachear datos personales en la capa equivocada puede filtrar el carrito de un usuario a otro. Así se distingue qué sí y qué no debe pasar por unstable_cache.
Cuatro funciones de invalidación de cache, cada una con un caso de uso distinto. Aquí la matriz de decisión que no vas a encontrar en un solo lugar de la documentación.
Proteger una ruta administrativa solo en el proxy es un solo punto de falla. Así se arma una segunda barrera independiente que no depende de la primera.
Funciones cannot be passed directly to Client Components. Este error confunde hasta a devs con experiencia. Aquí la regla mental que lo resuelve de raíz.
Llamar a una API de terceros directo desde el cliente expone tu API key en el navegador. Un Route Handler propio soluciona esto y te da control de cache.
Ambos ejecutan código en el servidor. La diferencia real no está en la sintaxis, está en quién más va a consumir esa lógica además de tu propia UI.
Un formulario con validación por campo, estado de carga y manejo de errores, sin useState ni onSubmit manual. Y sigue funcionando si el JS aún no cargó.
Un solo componente dinámico en tu layout puede volver dinámica toda tu página estática, si no lo aíslas bien. Así se evita ese efecto dominó con Suspense.
Tenía cache configurado y aun así mi base de datos se ejecutó dos veces en el mismo request. El motivo no es un bug, es una confusión muy común entre dos APIs.
Los dos hacen que tu UI se sienta más rápida durante una mutación, pero resuelven problemas distintos. Confundirlos produce UIs que parecen lentas sin serlo.
Descubre cómo el patrón Builder limpia tu código eliminando constructores gigantes. Guía práctica con TypeScript para arquitecturas robustas.
Aprende qué son los patrones creacionales, por qué son vitales para tu arquitectura y cómo implementarlos con ejemplos reales en Go y Node.js.
Domina los fundamentos de Go con 10 ejercicios prácticos: desde Hola Mundo hasta estructuras de datos. Código comentado y listo para ejecutar.
Un análisis exhaustivo sobre el impacto del Cloud Computing en el desarrollo moderno. Exploramos desde el ahorro de costos (TCO) hasta los riesgos críticos de latencia y FinOps.
Domina los pilares del cloud computing: desde la elasticidad y el autoservicio hasta la seguridad avanzada. Una guía técnica para elegir el mejor proveedor.
Descubre cómo la computación en la nube resolvió desafíos históricos de infraestructura, desde la escalabilidad masiva hasta la democratización de la IA.
Domina las relaciones entre tablas y las acciones referenciales (CASCADE, RESTRICT, SET NULL). Aprende qué sucede realmente cuando borras datos en sistemas productivos.
Aprende cómo el almacenamiento Inline y Off-page (LOB) impacta el rendimiento de tus bases de datos y por qué la elección entre VARCHAR y TEXT es crítica.
Descubre la diferencia técnica entre INT e INT UNSIGNED, cómo impacta el bit de signo en el rango de valores y por qué es una decisión crítica para tus Primary Keys.
Guía técnica para vincular dominios en Firebase Hosting usando Cloudflare. Aprende a configurar registros A, CNAME y a solucionar el error de certificado SSL.