Migrating to DAX Node.js SDK V3 - Amazon DynamoDB

Migrating to DAX Node.js SDK V3

This migration guide will help you transition your existing DAX Node.js applications. The new SDK requires Node.js 18 or higher and introduces several important changes in how you'll structure your DynamoDB Accelerator code. This guide will walk you through the key differences, including syntax changes, new import methods, and updated asynchronous programming patterns.

V2 Node.js DAX usage

const AmazonDaxClient = require('amazon-dax-client'); const AWS = require('aws-sdk'); var region = "us-west-2"; AWS.config.update({ region: region, }); var client = new AWS.DynamoDB.DocumentClient(); if (process.argv.length > 2) { var dax = new AmazonDaxClient({ endpoints: [process.argv[2]], region: region, }); client = new AWS.DynamoDB.DocumentClient({ service: dax }); } // Make Get Call using Dax var params = { TableName: 'TryDaxTable', pk: 1, sk: 1 } client.get(params, function (err, data) { if (err) { console.error( "Unable to read item. Error JSON:", JSON.stringify(err, null, 2) ); } else { console.log(data); } });

V3 Node.js DAX usage

For Using DAX Node.js V3 Node version 18 or above is the preferred version. To move to Node 18, use the following:

// Import AWS DAX V3 import { DaxDocument } from '@amazon-dax-sdk/lib-dax'; // Import AWS SDK V3 DynamoDBDocument ~ DocumentClient in V2 import { DynamoDBDocument } from '@aws-sdk/lib-dynamodb'; import { DynamoDBClient } from '@aws-sdk/client-dyanmodb'; // Create DynamoDBDocument var client = DynamoDBDocument.from(new DynamoDB({region: 'us-west-2'}); // Override DynamoDBDocument Client with DaxDocument if (process.argv.length > 2) { client = new DaxDocument({ endpoints: [process.argv[2]], region: 'us-west-2', }); } var params = { TableName: 'TryDaxTable', pk: 1, sk: 1 } // Dax Shifted it's API Calls to await/promise try { const results = await client.get(params); console.log(results); } catch (err) { console.error(err) }