La premisa de la tecnología sin servidor siempre ha sido atractiva: escriba una función, no administre un servidor, pague por el uso real. El problema es que la implementación nunca ha sido tan limpia como el discurso. Los contenedores necesitan inicializarse. Los procesos se reutilizan entre solicitudes de diferentes clientes. Y cuanto más global debe ser su sistema, más costosa será la latencia de una función que se despierta fría en el otro lado del planeta. WebAssembly en el borde resuelve exactamente este conjunto de problemas, no por ser más rápido en rendimiento bruto, sino por tener un modelo de ejecución fundamentalmente diferente.
El problema de los arranques en frío.
Cuando una función Lambda recibe su primera solicitud después de un período de inactividad, el tiempo de ejecución debe inicializar el entorno. Dependiendo del idioma y del tamaño del paquete, esto cuesta entre 100 ms y 500 ms. ¿Contenedor en Cloud Run o Kubernetes? Puede pasar de uno a diez segundos hasta que esté listo para atender el tráfico. Para las API internas donde la latencia P99 no es un problema crítico, puede vivir con ella. Para la lógica que afecta a cada solicitud de usuario (enrutamiento geográfico, validación de tokens, personalización de encabezados, pruebas A/B), ese tiempo se convierte en un problema visible.
Cloudflare Workers y Fastly Compute han tomado decisiones arquitectónicas que eliminan estructuralmente este problema. En Workers, el código se ejecuta en aislados V8, recursos compartidos ligeros dentro del mismo proceso. el aislamiento ya existe; cuando llega una solicitud, se envía en microsegundos. El arranque en frío, en la práctica, se acerca a cero. En Fastly Compute, el enfoque es aún más directo: el módulo Wasm se compila previamente en código nativo en la máquina host y se carga como una unidad de ejecución pura. Submilisegundo desde el inicio hasta el procesamiento.
Deno Deploy sigue una línea similar, con soporte para TypeScript, JavaScript y Wasm distribuido en más de treinta ubicaciones de borde. El resultado es el mismo: la brecha entre "la solicitud llegó" y "la función comenzó a ejecutarse" se reduce a algo que ya no se puede medir en la experiencia del usuario.
Aislamiento por petición, no por proceso
Hay un detalle que rara vez aparece en los tutoriales serverless pero que importa mucho en entornos multiinquilino: ¿qué sucede entre solicitudes consecutivas dentro de un mismo proceso?
En las funciones Lambda y Cloud Run, el contenedor o proceso suele reutilizarse para ganar eficiencia. Esto es bueno para el rendimiento, pero crea una ventana donde el estado accidental puede filtrarse entre invocaciones. Las variables globales modificadas por una solicitud pueden influir en la siguiente. Conexiones abiertas, cachés en memoria: todo esto persiste en el mismo proceso. Para aplicaciones de diseño sin patrimonio con equipos disciplinados, no es un problema. Pero lo que existe es una superficie de riesgo.
El modelo Wasm en el borde cierra esta superficie de otra manera. Cada módulo Wasm opera con su propia memoria lineal: una matriz contigua de bytes que es privada para ese módulo. No hay un montón compartido entre solicitudes. No hay forma de que una solicitud lea la memoria de otra, incluso si se ejecutan en el mismo hardware al mismo tiempo. El aislamiento no depende de un proceso separado; está en el nivel del modelo de ejecución de la máquina virtual.
Para plataformas que ejecutan lógica de miles de clientes en el mismo hardware, este detalle no es opcional. Es la diferencia entre un modelo de seguridad sobre el que se puede razonar formalmente y uno que se basa en las mejores prácticas de cada equipo.
Donde Edge Wasm gana sobre Lambda y Cloud Run
La victoria no es universal. Existe un conjunto específico de casos en los que la combinación de inicio instantáneo, distribución global y aislamiento de solicitudes crea una diferencia real en el producto.
La lógica que necesita estar cerca del usuario geográficamente se beneficia más. Enrutamiento por ubicación, respuestas personalizadas por mercado, validación de autenticación antes de llegar al servidor de origen: todo esto tiene una latencia directamente afectada por dónde se ejecuta el código. Una función de borde opera en una presencia de red a decenas de milisegundos de distancia del usuario, no en una región de nube a cientos de distancia.
Modificar solicitudes y respuestas también encaja bien: inyectar encabezados, reescribir URL, aplicar almacenamiento en caché personalizado, redireccionar según pruebas A/B. Se trata de operaciones con poca CPU y un gran impacto en la experiencia. La lógica de limitación de velocidad y la detección de bots ganan por igual: controle el tráfico antes de que llegue a la infraestructura principal, personalizado por inquilino y ejecutándose globalmente.
Donde el modelo no aguanta
El límite de CPU por solicitud es estricto: unos cincuenta milisegundos en la mayoría de las plataformas. Cualquier procesamiento más prolongado queda fuera del modelo.
Las cargas de trabajo con estado son el otro límite estructural. Wasm en el borde no tiene acceso nativo a base de datos y cualquier persistencia pasa a través de una llamada de red a la fuente. Si la lógica empresarial es leer, transformar y escribir datos, la latencia de esta llamada puede anular cualquier ganancia de ventaja. Las grandes dependencias también son un problema: un módulo Wasm con megabytes de bibliotecas pierde la ventaja de una inicialización rápida.
El intercambio es explícito: se obtiene distribución global y un inicio instantáneo, y se renuncia a procesos de larga duración, acceso completo al sistema operativo y cargas de trabajo que requieren un uso intensivo de la CPU. Aceptar este oficio para los casos correctos (y rechazarlo para los equivocados) es la decisión arquitectónica que importa.
Lo que el líder técnico necesita evaluar
La pregunta productiva no es "¿deberíamos utilizar Edge Wasm?" pero "¿qué fracción de la lógica de borde de nuestra plataforma se beneficia de este modelo?" Casi todas las plataformas tienen una lógica que afecta a cada solicitud: autenticación, enrutamiento, indicadores de funciones, almacenamiento en caché personalizado. Esta lógica es una candidata natural.
La evaluación comienza mapeando la latencia actual por región geográfica. Si hay una gran divergencia entre P50 y P99 dependiendo de dónde se encuentre el usuario, la informática de punta entra en la conversación. Si la base de usuarios está concentrada geográficamente, el beneficio se reduce.
El segundo eje es el aislamiento multiinquilino. Si la plataforma ejecuta una lógica diferente por cliente, el modelo de aislamiento por solicitud de Wasm ofrece una garantía de que los contenedores tradicionales no pueden entregarse sin un costo operativo adicional. El tercer eje es la incorporación: Workers y Fastly Compute tienen CI/CD maduro, pero la cadena de herramientas Wasm todavía tiene asperezas en comparación con Lambda en Node o Python. Este costo debe incluirse en el cálculo.
Lea también
- Trabajadores de Cloudflare: Guía práctica para la informática perimetral sin servidor
- Trabajadores de Cloudflare en producción: qué cambia después de hello world
- Cloudflare Workers vs Pages: la diferencia que importa antes de elegir
- WebAssembly más allá del navegador: la capa de ejecución universal que falta
- RISC-V en el borde e IoT: Por qué es importante la arquitectura abierta
- Desarrollando aplicaciones sin servidor con AWS Lambda y Cloudflare Workers en 2025