Skip to content
This repository has been archived by the owner on Aug 27, 2023. It is now read-only.

Reference architecture for a serverless, graphql-based service mesh on Amazon Web Services (AWS) using the latest and greatest Apollo GraphQL product offerings.

Notifications You must be signed in to change notification settings

medelman17/serverless-graphql-mesh

Repository files navigation

Serverless GraphQL Service Mesh

[WIP] This repository provides a reference architecture for a serverless, graphql-based service mesh on Amazon Web Services (AWS).

ServicesAboutInstallationResourcesRoadmapLicense


Services

Service Tech Endpoint
Router Rust https://mesh.ocrateris.cloud/router
Gateway Node https://mesh.ocrateris.cloud/gateway/graphql
Customers Rust https://mesh.ocrateris.cloud/service/customers
Products Rust https://mesh.ocrateris.cloud/service/products
Reviews Rust https://mesh.ocrateris.cloud/service/reviews

About

...

Design Principles

...

Architecture

...

Installation

Prerequisites

✅ Create an Amazon Web Services (AWS) account.
✅ Install the AWS command line interface (AWS-CLI).
✅ Install node and pnpm (package manager).
✅ Install the AWS Cloud Development Kit toolkit (AWS-CDK) .
✅ Bootstrap your AWS account for use with cdk.
✅ Install and configure docker and buildx plugin.
✅ Install rust and related toolchain.

Get Started

  1. Clone this repository & install tooling dependencies.
git clone git@github.com:medelman17/serverless-graphql-mesh.git
cd serverless-graphql-mesh 
pnpm install
  1. Update project configuration file with your AWS account number.
Insert nifty bash one-liner, here.
  1. Build services and other accoutrement.
pnpm run build
  1. Deploy to the cloud.
pnpx turbo run deploy
  1. Profit.

Resources

GraphQL

  • Apollo GraphQL Platform - The Apollo Graph Platform unifies GraphQL across your apps and services, unlocking faster delivery for your engineering teams.
  • Federation - Apollo Federation is the industry-standard open architecture for building a distributed graph that scales across teams.
  • Rust Router - Use Apollo’s graph router to compose a unified graph from multiple subgraphs, determine a query plan, and route requests across your services. The Apollo Router is written in Rust, and it is fast. ⚡️ Early benchmarks show that the Router adds less than 10ms of latency to each operation, and it can process 8x the load of the JavaScript Apollo Gateway. Packaged as a standalone, multi-threaded binary, the Router can use all available CPU cores without needing to run multiple instances on a single machine.

Cloud Infrastructure

  • Cloud Development Kit (CDK) - The AWS Cloud Development Kit (AWS CDK) is an open-source software development framework to define your cloud application resources using familiar programming languages.

Distributed Systems

Tooling & Stack Bits

  • Turborepo - Monorepos that make ship happen; turborepo is a high-performance build system for JavaScript and TypeScript codebases. A fresh take on the whole setup. Designed to glue everything together. A toolchain that works for you and not against you. With sensible defaults, but even better escape hatches. Built with the same techniques used by the big guys, but in a way that doesn't require PhD to learn or a staff to maintain.
  • Docker BuildX - Docker Buildx is a CLI plugin that extends the docker command with the full support of the features provided by Moby BuildKit builder toolkit. It provides the same user experience as docker build with many new features like creating scoped builder instances and building against multiple nodes concurrently.

Roadmap

  • Create Roadmap

License

Source code in this repository is covered by the MIT license. The default throughout the repository is a license under the MIT license, unless a file header or a license file in a subdirectory specifies another license. See the LICENSE for the full license text.

About

Reference architecture for a serverless, graphql-based service mesh on Amazon Web Services (AWS) using the latest and greatest Apollo GraphQL product offerings.

Topics

Resources

Stars

Watchers

Forks