{"id":26351632,"url":"https://github.com/inqnuam/serverless-aws-lambda-ddb-streams","last_synced_at":"2026-02-17T04:31:34.437Z","repository":{"id":65693459,"uuid":"594760421","full_name":"Inqnuam/serverless-aws-lambda-ddb-streams","owner":"Inqnuam","description":"DynamoDB Local Streams plugin for serverless-aws-lambda","archived":false,"fork":false,"pushed_at":"2024-11-20T14:41:16.000Z","size":296,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-30T15:51:29.725Z","etag":null,"topics":["aws-lambda","dynamodb","lambda","serverless"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Inqnuam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-29T15:07:24.000Z","updated_at":"2024-11-20T14:41:26.000Z","dependencies_parsed_at":"2024-07-09T17:11:09.315Z","dependency_job_id":null,"html_url":"https://github.com/Inqnuam/serverless-aws-lambda-ddb-streams","commit_stats":{"total_commits":9,"total_committers":2,"mean_commits":4.5,"dds":"0.33333333333333337","last_synced_commit":"caf9a0de23942a314144e568332dcc54b39b50c8"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Inqnuam/serverless-aws-lambda-ddb-streams","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inqnuam%2Fserverless-aws-lambda-ddb-streams","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inqnuam%2Fserverless-aws-lambda-ddb-streams/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inqnuam%2Fserverless-aws-lambda-ddb-streams/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inqnuam%2Fserverless-aws-lambda-ddb-streams/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Inqnuam","download_url":"https://codeload.github.com/Inqnuam/serverless-aws-lambda-ddb-streams/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inqnuam%2Fserverless-aws-lambda-ddb-streams/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278530923,"owners_count":26002184,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-lambda","dynamodb","lambda","serverless"],"created_at":"2025-03-16T10:33:35.362Z","updated_at":"2025-10-05T22:25:12.142Z","avatar_url":"https://github.com/Inqnuam.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Description\n\n\u003e DynamoDB local Streams for serverless-aws-lambda\n\n## Installation\n\n```bash\nyarn add -D serverless-aws-lambda-ddb-streams\n# or\nnpm install -D serverless-aws-lambda-ddb-streams\n```\n\n## Usage\n\nuse [serverless-aws-lambda's](https://github.com/Inqnuam/serverless-aws-lambda) defineConfig to import this plugin\n\n```js\n// config.js\nimport { defineConfig } from \"serverless-aws-lambda/defineConfig\";\nimport { dynamoStream } from \"serverless-aws-lambda-ddb-streams\";\n\nexport default defineConfig({\n  plugins: [dynamoStream(dynamoDbClientConfig, pluginOptions)],\n});\n```\n\n### DynamoDB Client Config\n\n[Configuration](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-dynamodb/Interface/DynamoDBClientConfig/) used to connect to DynamoDB Tables.\nBy default the plugin uses following configuration:\n\n```json\n{\n  \"endpoint\": \"http://127.0.0.1:8000\",\n  \"region\": \"ddblocal\",\n  \"credentials\": { \"accessKeyId\": \"test\", \"secretAccessKey\": \"test\" }\n}\n```\n\nIf after connecting to the table, StreamEnabled is `false`, the plugin will try to enable it.\n\nSee [docker-compose.yml](resources/docker-compose.yml) to bootstrap local instance of DynamoDB using Docker.\n\n### Plugin Options\n\n- waitBeforeInit:  \n  An error will be thrown if after \"waitBeforeInit\" (in seconds) the plugin was not able to connect to the Table. default 25.\n- watchInterval:  \n  interval (in seconds) to check for new streamable records. default 2\n\n### Event Source Mapping\n\n```yaml\n# serverless.yml\nservice: sls-project\n\nframeworkVersion: \"3\"\n\nplugins:\n  - serverless-aws-lambda\n\ncustom:\n  serverless-aws-lambda:\n    configPath: ./config.default\n\nprovider:\n  name: aws\n  runtime: nodejs20.x\n  region: eu-west-1\n\nfunctions:\n  myAwsomeLambda:\n    handler: src/handlers/lambda.default\n    events:\n      - stream:\n          arn: arn:aws:dynamodb:region:XXXXXX:table/Banana/stream/1970-01-01T00:00:00.000\n          batchSize: 3\n```\n\n### Supported stream declarations\n\n```yaml\n- stream:\n    arn: arn:aws:dynamodb:region:XXXXXX:table/Banana/stream/1970-01-01T00:00:00.000\n```\n\n```yaml\n- stream:\n    type: dynamodb\n    arn:\n      Fn::GetAtt: [MyDynamoDbTable, StreamArn]\n```\n\n```yaml\n- stream:\n    arn:\n      Fn::ImportValue: MyExportedDynamoDbStreamArnId\n```\n\n```yaml\n- stream:\n    arn:\n      Ref: MyDynamoDbTableStreamArn\n```\n\n```yaml\n- stream:\n    type: dynamodb\n    arn: !GetAtt dynamoTable.StreamArn\n```\n\n```yaml\nfunctions:\n  myAwsomeLambda:\n    handler: src/handlers/lambda.default\n    events:\n      - stream:\n          arn: arn:aws:dynamodb:region:XXXXXX:table/Banana/stream/1970-01-01T00:00:00.000\n          batchSize: 3\n          filterPatterns:\n            - eventName: [INSERT]\n            - dynamodb:\n                NewImage:\n                  OrderId:\n                    N:\n                      - numeric: [\"\u003e\", 4]\n```\n\n### Supported configurations\n\n✅ supported  \n🌕 planned  \n❌ not planned\n\n- ✅ batchSize\n- ✅ batchWindow\n- ✅ bisectBatchOnFunctionError\n- ✅ destinations (requires [AWS Local SNS](https://github.com/Inqnuam/serverless-aws-lambda/blob/main/resources/sns.md) and/or [AWS Local SQS](https://github.com/Inqnuam/serverless-aws-lambda/blob/main/resources/sqs.md))\n- ✅ enabled\n- ✅ filterPatterns\n- ✅ functionResponseType\n- ✅ maximumRecordAgeInSeconds\n- ✅ maximumRetryAttempts\n- ❌ startingPosition (uses always `TRIM_HORIZON`)\n  - DynamoDB Local dont works well with `LATEST` when multiple Tables are created.\n  - As a workaround recreate a new table before starting the app.\n- ❌ startingPositionTimestamp\n- ✅ tumblingWindowInSeconds\n- ❌ parallelizationFactor\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finqnuam%2Fserverless-aws-lambda-ddb-streams","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finqnuam%2Fserverless-aws-lambda-ddb-streams","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finqnuam%2Fserverless-aws-lambda-ddb-streams/lists"}