dynamodb-adapter

A library that implements the Write Model Adapter interface for storing events on dynamodb.

Here's an example of the table config in CloudFormation syntax:

EventStoreTable:
Type: 'AWS::DynamoDB::Table'
Properties:
TableName: someEntity ## <- your table name here
AttributeDefinitions:
- AttributeName: entityId
AttributeType: S
- AttributeName: version
AttributeType: N
- AttributeName: entityName
AttributeType: S
- AttributeName: commitId
AttributeType: S
KeySchema:
- AttributeName: entityId
KeyType: HASH
- AttributeName: version
KeyType: RANGE
GlobalSecondaryIndexes:
- IndexName: someEntityByCommitId ## <- your index name here
KeySchema:
- AttributeName: entityName
KeyType: HASH
- AttributeName: commitId
KeyType: RANGE
Projection:
ProjectionType: ALL

Methods

build

build({ entityName }, { tableName, indexName, ...awsOptions )

builds a write model adapter

Parameters

attribute

type

description

entityName

string

the name of the entity

tableName

string

the name of the dynamodb table

indexName

string

the name of the index sorting commits by commitId

...awsOptions

object

any additional arguments are passed along to AWS, like so:new AWS.DynamoDB(awsOptions)

Returns

an object with write model methods‚Äč

Example

adapter.js
const dynamoAdapterBuilder = require('serverless-cqrs.dynamodb-adapter')
module.exports = dynamoAdapterBuilder.build({
entityName: 'todo'
}, {
tableName: 'todos',
indexName: 'todosByCommitId',
region: 'eu-west-1',
})