An open API service indexing awesome lists of open source software.

https://github.com/sharjeelsafdar/project15a-dining-by-friends-with-neptune

Dining by Friends GraphQL API for people to sign up, become friends with other users and get personalized recommendations for restaurants.
https://github.com/sharjeelsafdar/project15a-dining-by-friends-with-neptune

appsync aws aws-cdk aws-lambda cognito-user-pool event-driven eventbridge graphql neptune-db typescript vpc

Last synced: 26 days ago
JSON representation

Dining by Friends GraphQL API for people to sign up, become friends with other users and get personalized recommendations for restaurants.

Awesome Lists containing this project

README

        


Project 15A: Dining By Friends GraphQL API with Event-Driven Architecture

This AWS CDK App deploys the backend infrastructure for the Dining by Friends GraphQL API to AWS CloudFormation. It consists of the following constructs:

- A [Cognito](https://aws.amazon.com/cognito/) [User Pool](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html) for authenticating users
- An [Amazon VPC](https://aws.amazon.com/vpc/) with 2 Private Subnets and a Security Group to create the database in
- An [Amazon Neptune](https://aws.amazon.com/neptune/) graph database to store the data for the api
- A [Lambda](https://aws.amazon.com/lambda/) function to add a new user's data to the database when he/she confirms his/her email after signing up
- An [AppSync](https://aws.amazon.com/appsync/) GraphQL API to get data from or update the data in the database
- A Lambda function connected to a Lambda Data Source of AppSync to synchronously read data from Neptune DB
- An HTTP Data Source of AppSync to put the mutation data on the default [EventBridge](https://aws.amazon.com/eventbridge/) bus
- A Lambda function to perform the mutation on the Neptune DB asynchronously
- An EventBridge rule to envoke the lambda function to perform the mutation


Architecture Diagram