Amazon DAX Client for JavaScript
DAX is a DynamoDB-compatible caching service that enables you to benefit from fast in-memory performance for demanding applications.
This client library provides access from NodeJS to DAX.
Installing
The Amazon DAX client only runs from NodeJS, and can be installed using npm:
npm install amazon-dax-client
Usage and Getting Started
You can follow the Getting Started tutorial at:
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.client.sample-app.html
To quickly use DAX, replace AWS.DynamoDB
with AmazonDaxClient
:
const AmazonDaxClient = require('amazon-dax-client');
// Replace this ...
const ddb = new AWS.DynamoDB({region: region});
/// with this ...
const endpoint = "your-cluster-discovery-endpoint";
const dax = new AmazonDaxClient({endpoints: [endpoint], region: region});
// If using AWS.DynamoDB.DocumentClient ...
const doc = new AWS.DynamoDB.DocumentClient({service: dax});
The DAX Cluster Discovery Endpoint can be found the AWS console or by using aws dax describe-clusters
from the command line.
Creating a connection to your DAX cluster requires using the Cluster Discovery Endpoint URL returned in the DescribeClusters response as the endpoint.
For example:
// Format: const endpoint = <ClusterDiscoveryEndpoint.URL>;
const endpoint = 'dax://my-cluster.abc123.dax-clusters.us-east-1.amazonaws.com';
Getting Help
Please use these community resources for getting help.
- Ask a question on StackOverflow and tag it with
amazon-dynamodb-dax
- Ask a question on the AWS DynamoDB forum
- Open a support ticket with AWS Support
Changes
1.2.9
- Fixed “NeedMoreData: not enough data” error in case of server sending exception-response
1.2.8
- Fixed “NeedMoreData: not enough data” error (#4038)
- Fixed erroneous validation error on duplicate attribute name values in ExpressionAttributeNames
1.2.7
- AuthenticationRequiredException is a retryable request
- Improved request routing, connection management and retry logic
1.2.6
- Add support for TLS and encrypted DAX clusters
1.2.5
- Lock antlr4 to 4.8.x to avoid breaking application running older node version when upgrading to 4.9.0
- Replace use of deprecated Buffer constructors
1.2.4
- Minor bug fixes.
1.2.3
- Retry prefer to choose a different node.
- Adjust exponential back off delay and strategy.
1.2.2
- Fix unrecoverable request timeout after DAX node restart.
- Fix connection timeout during DAX server restart.
- Allow retry for IO exceptions.
- Remove verbose connection error logs.
- Fix empty string encoding bug.
1.2.1
- Bug fix in TransactionGetItems Api to return Key element correctly.
1.2.0
- Support for DynamoDB Transaction Apis.
- Fix excessive background endpoint refresh calls.
1.1.4
- Fix connection leaks on timeout.
- Support configurable requestTimeout. (Default: 60s)
1.1.3
- Fix transient error on tube cleanup
- Fix UpdateItem result parsing with a subset of attributes changed
- Increase default connectTimeout and make it configurable
1.1.2
- Fix socket leaks on validation errors
- Fix SocketTimeout caused by connection establishment
- Fix issue with update response if the item is not changed
- Fix error decoding BatchWrite UnprocessedItems.
1.1.1
- Fix socket leaks on errors
1.1.0
- Brand new decoder for improved performance on large results
- Improved connection/timer management to allow clean exit on Lambda
1.0.2
- Improved connection/timer management to allow clean exit on Lambda
1.0.1
- Initial release