This is a quick implementation of AWS AppSync graphql server of a Multi Channels Message System API. The resolvers were built with dynamoDB stream. It also includes a lambda consumer function to consume the stream and send SNS email notification when new channels or messages are created. The infrastructure was spinned up through Terraform and the lambda function were setup with Typescript. The whole application is desployed and managed through github action.
Deployment Architecture
import this collection
Query operation charges 5 million x $4.00 per million operations= $20.00 Data transfer charges 3 KB x 5 million = 15 million KB = 14.3 GB * $0.09 = $1.29 Total AppSync charges $20.00 + $1.29 = $21.29 appsync pricing reference
Since the monthly insert of messages and channels data are insignificant, so dynamodb cost is not actively included here.
There is currently no integration testings implemented.