{"id":24432013,"url":"https://github.com/syniol/serverless-graphql-api-golang","last_synced_at":"2026-05-10T03:02:50.383Z","repository":{"id":163227363,"uuid":"523441730","full_name":"syniol/serverless-graphql-api-golang","owner":"syniol","description":"GraphQL API with Graph Database using AWS Neptune, Step Functions and CDK for deployment","archived":false,"fork":false,"pushed_at":"2022-08-15T12:56:41.000Z","size":10617,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-13T20:13:12.717Z","etag":null,"topics":["aws","aws-cdk","aws-lambda","cdk-constructs","cdk-examples","golang","graphql","neptune","restful-api"],"latest_commit_sha":null,"homepage":"http://syniol.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/syniol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-08-10T17:45:28.000Z","updated_at":"2022-10-28T09:56:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"fc24f9c3-f886-46f5-b3ec-bf2d1d71f46e","html_url":"https://github.com/syniol/serverless-graphql-api-golang","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/syniol/serverless-graphql-api-golang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syniol%2Fserverless-graphql-api-golang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syniol%2Fserverless-graphql-api-golang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syniol%2Fserverless-graphql-api-golang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syniol%2Fserverless-graphql-api-golang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/syniol","download_url":"https://codeload.github.com/syniol/serverless-graphql-api-golang/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syniol%2Fserverless-graphql-api-golang/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265688364,"owners_count":23811422,"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","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","aws-cdk","aws-lambda","cdk-constructs","cdk-examples","golang","graphql","neptune","restful-api"],"created_at":"2025-01-20T15:29:16.217Z","updated_at":"2026-05-10T03:02:50.267Z","avatar_url":"https://github.com/syniol.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# REST~~ful~~ in Peace and Graph Up your API __(Golang Edition)__\nIn this presentation I will demonstrate how you could create \na simple scalable GraphQL API using AWS Lambda and GraphQL \nlibrary with Neptune Graph database. I will also take you \nthrough deployment process using AWS CDK to deploy our lambda \nfunction. In order to trigger the lambda we will also need to \ncreate an AWS API Gateway to trigger the deployed lambda.\n\n\n## Architecture\n\u003cp style=\"text-align: center;\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/syniol/serverless-graphql-api-golang/main/docs/diagram/serverless-arch.png\" alt=\"Diagram of Architecture\"\u003e\n\u003c/p\u003e\n\n\n## AWS Lambda \u0026 API Gateway\nWhen client sends an HTTP(s) request to public endpoint of AWS API Gateway; \nit will trigger an AWS State Machine which has a definition of Lambda execution. \nWe could have Authorizer Lambda to be triggered when initial lambda in triggered. \nPlease look at Architecture Diagram for Step Functions Workflow.\n\n\n## AWS CDK\nPlease follow steps below to deploy this project on AWS. Two main \nprerequisites to deploy this application are:\n * to have an AWS account with Administrator Privileges\n * to have a Docker Desktop installed and running on your machine\n\n\n### Step I - Build Args _(Docker Image Pipeline to Deploy with CDK)_\nPlease ensure you have the following environment variables set before \nrunning a command described in Step II.\n\n* `AWS_KEY` Your AWS Public Key, could be obtained from [_Security Credentials_](https://us-east-1.console.aws.amazon.com/iam/home?region=eu-west-2#/security_credentials) page \n* `AWS_SECRET` This will be your AWS Secret key, could be obtained from [_Security Credentials_](https://us-east-1.console.aws.amazon.com/iam/home?region=eu-west-2#/security_credentials) page\n* `CDK_DEFAULT_ACCOUNT` Your AWS Account Number\n* `CDK_DEFAULT_REGION` Preferred region to deploy resources\n\n\n### Step II - Build Docker Image _(Local Pipeline)_\nThere is `Makefile` located at the root of this repository; please use a command \nbelow to build a docker image which acts as a pipeline to deploy AWS resources \nusing Environment variables set in Step I.\n\n    make deploy\n\n\n#### Credits\nCopyright \u0026copy; 2022 Syniol Limited. All Rights Reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyniol%2Fserverless-graphql-api-golang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsyniol%2Fserverless-graphql-api-golang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyniol%2Fserverless-graphql-api-golang/lists"}