Links

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',
})