Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New serverless pattern - appsync-lambda-dynamodb-athena-dotnet-cdk #2479

Conversation

tejasavora
Copy link

Issue #, if available:
N/A

Description of changes:
This pull request implements a new serverless pattern demonstrating a GraphQL API with hot and cold data storage using AWS AppSync, Lambda, DynamoDB, S3, and Athena. The key changes include:

  1. Created a new CDK stack (GraphqlHotColdStorageCdkStack) that sets up:

    • An AWS AppSync API for handling GraphQL queries
    • Two AWS Lambda functions: one for hot data queries and another for cold data queries
    • An Amazon DynamoDB table for storing hot (frequently accessed) data
    • An Amazon S3 bucket for storing cold (less frequently accessed) data
    • An AWS Glue Data Catalog for managing the schema of cold data
    • Integration with Amazon Athena for querying cold data
  2. Implemented Lambda functions that serve as resolvers for the GraphQL API:

    • HotDataResolver: Queries data from DynamoDB
    • ColdDataResolver: Queries data from S3 using Athena
  3. Set up a GraphQL schema that provides unified querying for both hot and cold data

  4. Configured IAM permissions to allow secure interactions between services:

    • Lambda functions have necessary permissions to access DynamoDB, S3, Glue, and Athena
    • Athena has permissions to read from S3 and write query results
  5. Created comprehensive test cases for both Lambda functions and the overall GraphQL API

  6. Added detailed README.md with information about the pattern, its architecture, deployment instructions, and testing procedures

  7. Included an example-pattern.json file describing the serverless pattern for the Serverless Land website

This pattern showcases an efficient approach to managing data with varying access patterns, demonstrating how to combine multiple AWS services to create a scalable and cost-effective serverless architecture.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@bfreiberg
Copy link
Contributor

Hello @tejasavora

Thank you so much for your contribution!

After carefully reviewing your submission, we've decided not to merge it at this time. Let me explain why:

Our serverless patterns are designed to be primarily Infrastructure as Code (IaC) implementations that showcase 2-4 AWS services working together, with minimal custom code. The goal is to demonstrate commonly used combinations that help developers quickly get started with serverless architectures.

While your contribution is valuable, it doesn't quite align with our current focus on simple serverless patterns. It represents more a sample application that would normally be published at https://serverlessland.com/repos, however intake for those submissions is currently paused.

Thank you again for your contribution and for your understanding. We look forward to your future submissions!

@bfreiberg bfreiberg closed this Sep 27, 2024
@tejasavora
Copy link
Author

Hi @bfreiberg

Thank you very much for looking into my submission and providing valuable feedback. As I understand, this PR aligns more with repos, what changes can I make to this PR so that it could still be validated for patterns. In the future, when submission to repos open up, I can certainly submit bigger changes at that time.

Thank you once again!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants