Hono apps can run on Lambda Web Functions with no adapter on Node.js 24 and Arm64
AWS Lambda Web Functions run a Hono server without an adapter and allow 128 concurrent requests per environment, a dev.to guide says. Billing, concurrency and endpoint auth differ from Event Functions, so fit needs a check before a backend moves.
The Engineer · Build desk

Six exposures: server must bind to the AWS-provided address; Next.js standalone needs an entry file; module-level state can be shared across concurrent requests; one environment could ask the DB for 128 connections; waiting routes keep memory on the bill; queue work suits Event Functions.
- constraint Server entry point Must use the address AWS provides at runtime, not a hard-coded port or host, claim 13
- constraint Next.js standalone builds Need a small entry file to set their host and port, claim 4
- exposure Module-level state Mutable state can be shared across concurrent requests in the same process, claim 7
- exposure Database In the worst case, one execution environment could ask it for 128 connections, claim 19
- cost Routes waiting on a DB or API Use little CPU, but memory remains part of the execution environment's bill, claim 9
- decision Queue message processing A better match for an Event Function than a Web Function, claim 12
| Who | How | Kind | Claim |
|---|---|---|---|
| Server entry point | Must use the address AWS provides at runtime, not a hard-coded port or host | constraint | 13 |
| Next.js standalone builds | Need a small entry file to set their host and port | constraint | 4 |
| Module-level state | Mutable state can be shared across concurrent requests in the same process | exposure | 7 |
| Database | In the worst case, one execution environment could ask it for 128 connections | exposure | 19 |
| Routes waiting on a DB or API | Use little CPU, but memory remains part of the execution environment's bill | cost | 9 |
| Queue message processing | A better match for an Event Function than a Web Function | decision | 12 |
What happened
- AWS supplies the listening address through the AWS_LAMBDA_HTTP_ENDPOINT environment variable, and the Node.js server binds to it.
- At launch the supported runtime is Node.js 24 on Arm64, according to the guide's account of AWS's listing.
- Express, Fastify and Hono run without adapters. A standalone Next.js build has to be launched through a brief entry script that configures its host and port.
- A Web Function is an immutable revision of code and configuration, and one or more endpoints route traffic to those revisions.
- Charges are split across requests, active CPU time, memory consumed over the environment's lifetime, and data transfer.
Why it matters
- constraint Dropping the adapter still means touching the entry point: a start script that pins a port or host has to change before the app will listen where AWS expects.
- exposure An app written for one request at a time can leak state between users once requests overlap in one process, and module-level variables are the likely place.
- cost A route that mostly waits on a database or API uses little CPU but still accrues memory charges for the life of the environment.
- decision Queue consumers and other event-driven work stay a better fit for Event Functions, so a backend with both shapes ends up split across two execution models.
The 128 figure is a ceiling. The guide says it is not a target concurrency for every application, because the database pool, downstream API limits, memory use and request duration still set safe load [14]. If every overlapping request held a pool connection, one environment would ask the database for 128 [19]. The guide's advice is to bound the pool, count active environments and test burst exhaustion [10].
The state problem is the one a smoke test misses. A hello-world endpoint proves only that the endpoint responds, the guide says, and it does not validate the behavior of the real API [16]. Module-scope caches and per-user variables written for one invocation at a time are what we would search for first.
For load testing, the guide names three paths: a route that holds a database connection while it waits on an external API, a CPU-heavy transformation, and a streaming response [15]. It says to raise load gradually and watch latency percentiles, errors, open database connections and environment count [15]. Before any of that, run the production build locally with the runtime and environment variables you plan to use [18].
Cost transfers only if your mix matches. Whether Web Functions come out cheaper than Event Functions depends on your actual split of CPU work, waiting, memory and data transfer [17]. That split has to come from your own traces.
We think the first candidate is an HTTP service whose state already lives in the database and whose pool can be bounded. A service with in-process caches should fix those before it moves.
The guide tells readers to check how the endpoint will be authenticated and which regions are available [11]. It does not say what the answers are or what the meters cost.
What to watch
- AWS documentation on which endpoint authentication options Web Functions support, since the guide only tells readers to check.
- The published regional availability list and per-meter rates, which a cost comparison against Event Functions needs.
- Runtime support beyond Node.js 24 on Arm64, which decides whether non-Node backends can follow.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence45
- Adoption
- Insufficient
- Hype gap−10
- Incentives
- Insufficient
- Confidence55
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
A traditional Lambda Event Function is built around an invocation handler: the code receives an event, runs the handler and returns a response.
- [2]
AWS supplies the endpoint address to a Web Function through the AWS_LAMBDA_HTTP_ENDPOINT environment variable, and the standard Node.js HTTP server listens on that address.
- [3]
At launch, AWS lists Node.js 24 on Arm64 as the supported runtime for Web Functions.
- [4]
Express, Fastify and Hono can run on Web Functions without adapters; Next.js in standalone mode needs a small entry file to set its host and port.
- [5]
The service has a Web Function, which is an immutable revision of code and configuration, and one or more endpoints that route traffic to revisions.
- [6]
AWS describes up to 128 requests per Web Function execution environment at launch.
- [7]
Mutable module-level state can be shared across concurrent requests in the same process, so it should not substitute for user-scoped storage or transaction boundaries.
- [8]
AWS describes Web Function charges across requests, active CPU time, memory consumed over the execution environment's lifetime, and data transfer.
- [9]
Waiting on a database or API call uses little CPU, but memory remains part of the execution environment's bill.
- [10]
Overlapping requests may need a different database pool size than a one-invocation handler; the guide advises bounding the pool, accounting for active environments, and testing burst exhaustion.
- [11]
Before moving a SaaS backend, the guide says to check how the endpoint will be authenticated and which regions are available.
- [12]
An event-driven task such as processing a queue message is still a better match for an Event Function than a Web Function.
- [13]
The server needs to use the address AWS provides at runtime and not bind to a hard-coded port or host.
- [14]
The 128-request figure is not a target concurrency for every application; the database pool, downstream API limits, memory use and request duration still determine safe load.
- [15]
The guide names three paths to test: a route that holds a database connection while waiting on an external API, a CPU-heavy transformation, and a streaming response. It says to increase load gradually and watch latency percentiles, errors, open database connections and environment count.
- [16]
A basic hello-world endpoint proves the endpoint responds but does not validate the behavior of the real API.
- [17]
Whether the bill improves depends on the app's actual mix of CPU work, waiting, memory and data transfer.
- [18]
The guide says to run the production build locally and confirm the app starts with the same runtime and environment variables planned for deployment.
- [19]
In the worst case, one execution environment could ask the database for 128 connections.
Get this ledger inside ChatGPT. Ask about any of our stories and the answer brings its figure, each claim’s verdict and the sources. Free, no account.
Sources
1 independent publisher whose own reporting we read for this story.
- dev.toDeploy a Hono backend on AWS Lambda without an adapter layer
1 article · October 14, 2026
Topics and entities
Follow any of these and your For You feed starts watching them — no settings page required.