Use Cognito, Lambda and DynamoDB in cooperation to effectively persist and manage user profiles. This post presents an architecture along with some hints when integrating these services.
Digital garden of Søren Andersen.
Posts on tech that I use and learn.
Performing multiple operations in a single Lambda function is effectively a distributed transaction and handling it adds complexity. Not handling it can lead to inconsistency and faulty states. Design with DynamoDB Streams to avoid it altogether.
Let CloudFormation create AWS Resource Groups while deploying and get auto-generated CloudWatch dashboards to start monitoring stack resources right away.
Setting up a basic CI/CD pipeline to automate test and deployment of a Serverless Framework-based application using GitHub Actions.
Routing asynchronous function results - or failures - to destination resources with AWS Lambda Destinations.
Inspired by AWS' "Sessions With SAM" episode on EventBridge I took the sample code for a spin after converting the IaC to the Serverless Framework.
Instruct the AWS SDK to reuse HTTP connections as easy as setting an environment variable greatly optimizes DocumentClient operations.
I've played with DynamoDB Steams recently and with a Lambda trigger it supports many use cases such as aggregating or enriching data.
When it's useful to have configuration change on the fly we can use AWS SSM Parameter Store and Middy middleware to read and cache the values.
Use Lambda powertools to easily achieve structured logging of JSON objects, and at the same time get configurable log levels and sampling of debug logs.
Use the serverless-export-env plugin along with a Node script to prepopulate a DynamoDB table with seed data.
To avoid incompatibility issues between environments consider installing the Serverless Framework as a dev dependency in each project.
I've come to realize that writing and releasing content is hard, especially if you're somewhat of a perfectionist and just starting out.