The Amazon SDK for JavaScript V3 API
Reference Guide
Reuse connections with keep-alive in Node.js
The default Node.js HTTP/HTTPS agent creates a new TCP connection for every new request. To avoid the cost of establishing a new connection, the Amazon SDK for JavaScript reuses TCP connections by default.
For short-lived operations, such as Amazon DynamoDB queries, the latency overhead of
setting up a TCP connection might be greater than the operation itself.
Additionally, since DynamoDB encryption
at rest
If you do not want to reuse TCP connections, you can disable reusing these connections alive with keepAlive
on a per-service client
basis as shown in the following example for a DynamoDB client.
import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; import { NodeHttpHandler } from "@smithy/node-http-handler"; import { Agent } from "https"; const dynamodbClient = new DynamoDBClient({ requestHandler: new NodeHttpHandler({ httpsAgent: new Agent({ keepAlive: false }) }) });
If keepAlive
is enabled, you can also set the initial delay for TCP
Keep-Alive packets with keepAliveMsecs
, which by default is 1000 ms.
See the Node.js documentation