serverless-cqrs.dynamodb-adapter
v0.2.10-alpha.0
Published
A repository adapter for serverless-cqrs
Downloads
3
Maintainers
Readme
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
const dynamoAdapterBuilder = require('serverless-cqrs.dynamodb-adapter')
module.exports = dynamoAdapterBuilder.build({
entityName: 'todo'
}, {
tableName: 'todos',
indexName: 'todosByCommitId',
region: 'eu-west-1',
})