BuildRiot
Sign in

Article

AWS Lambda Web Functions add native HTTP hosting; small-API latency gains unproven

AWS Lambda Web Functions host HTTP servers directly and let requests share execution environments. This comparison explains the deployment changes, concurrency trade-offs, and tests needed to establish a latency or cost advantage.

Blue geometric requests flow into a shared server enclosure beside balanced scales representing an unresolved performance comparison.
Illustration: BuildRiot (AI-generated)

Key takeaway

Node.js HTTP services gain a deployment path without an event-to-HTTP adapter, but that alone does not establish better performance. Developers should measure shared-process contention, memory costs, and recovery from partial Regional releases before choosing.

An HTTP server becomes the deployment unit

AWS launched Lambda Web Functions on October 12, 2026, with native HTTP hosting in Northern Virginia, Ohio, Oregon, Tokyo, and Ireland. Applications run a port-listening HTTP server without an event-to-HTTP adapter. AWS’s walkthrough reported a live HTTPS endpoint in under one minute after running aws lambda-web deploy --name small-api --code./small-api. That timing describes one walkthrough, not a repeated deployment comparison. Sources: AWS, AWS News Blog

At launch, Web Functions run Node.js 24 on Arm64; AWS’s example reads its listening address from AWS_LAMBDA_HTTP_ENDPOINT. Applications with hard-coded addresses may therefore need configuration changes. Deployment uses ZIP packages and immutable revisions, with endpoints routing to one or two revisions. Web Functions support response streaming and either AWS Identity and Access Management (IAM) or application-managed authentication. AWS renamed existing functions Event Functions without requiring redeployment. Their APIs, Amazon Resource Names, and AWS::Lambda::Function resource remain unchanged. Sources: AWS, AWS News Blog

Compare the same framework through different serving paths

A fair experiment starts with an identical Express API on both platforms. Conventional Lambda already hosts framework applications through Lambda Web Adapter, which translates invocation events into HTTP requests and converts responses back. The adapter supports Function URLs, API Gateway, Application Load Balancer, streaming, and languages beyond Node.js. Web Functions remove that translation layer. Sources: AWS, AWS on GitHub

The table below separates the proposed deployments by experimental purpose. Keep API Gateway results separate so gateway overhead does not become an unexplained difference attributed to Web Functions. Pin the adapter version and exclude Lambda Managed Instances from the default baseline, or test them separately. The adapter added Managed Instances concurrency support in version 1.0.0 on March 27, 2026.

Table

Proposed small-API deployment comparison

DeploymentPurpose in the experiment
Web Function to identical Express APINative HTTP path
Function URL to Event Function to Web Adapter to identical APIClosest comparison of framework hosting
API Gateway HTTP API to Event Function to Web Adapter to identical APISeparate comparison with a gateway-based architecture
These proposed configurations separate native HTTP hosting, adapter-based hosting, and gateway integration; no results were measured.Sources: AWS, AWS on GitHub

Packaging flexibility also belongs in the comparison. Web Adapter supports managed runtimes, custom runtimes, and container images. ZIP installation requires an adapter layer, AWS_LAMBDA_EXEC_WRAPPER=/opt/bootstrap, and a startup-script handler. Web Functions offer a narrower launch runtime while removing those adapter setup steps. That trade-off may suit an existing Node.js service better than an application requiring another language or packaging format. Sources: AWS News Blog, AWS, AWS on GitHub

A shorter deployment command leaves production work

AWS’s walkthrough adds selected Regions with --regions us-east-1,eu-west-1,ap-northeast-1. AWS says this replicates code and provides best-effort latency-based routing through a global URL. The distribution covers selected Regions; it does not mean application code runs throughout CloudFront’s edge network. AWS also demonstrates weighted routing between revisions. Sources: AWS News Blog

AWS’s testing guide calls for validating the exact package, using a versioned S3 artifact, and polling revision and endpoint readiness. It also calls for checking each Regional status and testing rollback. Native dependencies need appropriate Arm64 builds. Local HTTP tests cannot validate IAM, scaling, telemetry, or multi-Region behavior. These checks belong in deployment timing alongside build, upload, and first successful response. Sources: AWS

An October 13, 2026, DevelopersIO report illustrates the infrastructure work: create a code bucket, upload the ZIP, then create the function and CloudFront resources. The author reported HTTP 200 through CloudFront and HTTP 403 for unsigned direct-origin access. The example tested GET, leaving a complete create, read, update, and delete API unverified. CloudFront adds custom domains, transport encryption, caching, and AWS Web Application Firewall integration. Its Origin Access Control restricts origin access and preserves application credentials. Count maintained resources, configuration, manual interventions, and rollback work when comparing deployment complexity. Sources: AWS, DevelopersIO

Concurrency trades initialization pressure for contention

Web Functions allow a concurrency ceiling of 1 to 128 requests per environment, with a default of 64. AWS dynamically manages actual concurrency, which may fall below that ceiling. Each environment consumes two virtual CPUs, and each endpoint has a quota of 10,000 requests per second per Region. Account quotas per Region are 100,000 requests per second and 2,000 virtual CPUs. A higher environment ceiling does not override those quotas. Event Functions process one request per environment by default, but Managed Instances already support concurrent execution. Sources: AWS

Sharing capacity may help requests that spend time waiting on downstream services, but that remains a hypothesis for this proposed API. AWS warns that synchronous CPU or filesystem work blocks the Node.js event loop and delays requests sharing the environment. AWS advises lowering concurrency when CPU contention increases latency. A burst could require fewer initializations while still producing worse tail latency; both effects need measurement. Sources: AWS

Cold starts remain part of the model. AWS’s product messaging describes burst handling without cold-start penalties, but its scaling guide documents cold starts after environments scale to zero. There is no minimum or reserved-environment setting. Evaluate capacity sharing separately from first-request behavior after inactivity. Sources: AWS

Measure latency before declaring a winner

The research available by October 13, 2026, did not establish a reproducible small-API latency advantage. No AWS deployment or latency test was run for this article. AWS’s product page carries a Breadcrumb.ai claim of roughly 30% better performance without defining the metric, load, baseline, or percentiles. A Marketing Evolution testimonial reports a fourfold improvement alongside a Python-to-Node.js rebuild, preventing isolation of the platform change. These testimonials do not provide a transferable speed estimate.

The proposed, unmeasured experiment would use one locked Express application with four routes. The /json route would return a fixed 1 KiB JSON response, while /io would make a controlled downstream HTTP request with a fixed delay. The /cpu route would perform deterministic synchronous computation, and /stream would send fixed-size chunks on a documented schedule. Pin the Node.js version, architecture, dependencies, payloads, authentication, compression, and logging. Record resource settings and report resource-oriented and cost-oriented comparisons separately. The following test durations, loads, and sample counts are proposed methods, not measured findings.

  1. Warm up for five minutes, then run ten-minute arrival-rate tests at 10, 100, and 500 offered requests per second.
  2. Step from 10 to 500 requests per second for 60 seconds; record latency over time, initializations, and throttling.
  3. Collect at least 30 verified fresh-environment observations, recording initialization evidence and first-request latency.
  4. Sweep concurrency ceilings through 1, 8, 32, 64, and 128; track latency, CPU, memory, and downstream saturation.
  5. Repeat from North America, Europe, and Asia with dependencies in each execution Region, then with one shared Regional database.
  6. Time five clean deployments and five updates, separating build, upload, readiness, first success, and rollback.

For this experiment, report the 50th, 95th, and 99th latency percentiles, achieved throughput, errors, and requests the load generator could not start. Alternate test order, repeat runs, and avoid hidden retries. Record connection reuse, domain-name lookup time, and encrypted connection setup time. For streaming, measure first byte and completion separately. The geographic tests should reveal whether nearby compute helps when the database remains elsewhere.

Choose around workload and operational constraints

Web Functions charge for requests, active CPU, memory, and data transfer. Database waiting consumes little CPU, but memory remains billable throughout an environment’s existence, including idle intervals. Include applicable gateway, CloudFront, logging, initialization, and dependency costs in the comparison. This research did not verify dollar rates, so it cannot identify a numerical cost winner. Sources: AWS

AWS/Lambda/Web metrics are centralized in the home Region, while AWS/Lambda/Web/Usage quota metrics remain Regional. Some request and error metrics are sparse, so missing data does not automatically mean zero. AWS recommends testing shared mutable state, filename collisions, event-loop blocking, partial Regional updates, and rollback. Replicated code alone cannot establish replicated database state, globally valid sessions, or dependency failover. Sources: AWS

For a Node.js HTTP service, prioritize a trial where adapter maintenance and Regional deployment consume meaningful engineering time. Keep the conventional configuration in the evaluation when language flexibility, packaging, or gateway integration matters. Before choosing, require acceptable tail latency under mixed traffic and predictable recovery from a partial release.

Attribution

Sources

  1. 1AWSAWS Lambda announces Lambda Web FunctionsSource published (UTC)
  2. 2AWS News BlogAnnouncing AWS Lambda Web FunctionsSource published (UTC)
  3. 3AWSAWS Lambda Web Functions
  4. 4AWSScaling behavior for Lambda Web Functions
  5. 5AWS on GitHubAWS Lambda Web Adapter design
  6. 6AWS on GitHubAWS Lambda Web Adapter
  7. 7AWSWhat is AWS Lambda?
  8. 8AWSTesting Lambda Web Functions
  9. 9AWSAmazon CloudFront now supports AWS Lambda Web Functions as an origin
  10. 10DevelopersIOTried placing Lambda Web Functions behind CloudFront OAC with CloudFormationSource published (UTC)

Read the original source for full details and context.

Report a problem

Links, dates or what you expected. Do not include passwords or private data.