Skip to content

This project is a distributed system that re-creates some of the functionality of existing aviation systems.

License

Notifications You must be signed in to change notification settings

edinstance/distributed-aviation-system

Repository files navigation

distributed-aviation-system

This project is a distributed system that re-creates some functionality of existing aviation systems.

Graphql

This project uses Graphql, each service exposes its own set of Graphql Application Programming Interface's (API's), and there is a routing layer that uses Apollo Router for routing to the correct subgraph.

Important

The system uses a federated graph which means that some queries need multiple services to be running. It is recommended to run all of the services when querying the router.

Apollo Router

The project runs the router in a Docker container, but the configuration of the router is done in the router.yml file and it uses this supergraph.

Supergraph

The routers use a single federated graph or supergraph which is made from all of the individual services graphs or sub-graphs. The supergraph can be created using the Apollo Rover CLI.

Caution

Before using the router make sure that the supergraph has been created or updated.

Rover installation

Either follow this guide to get started or follow the repository-specific steps below.

  1. Install rover

You can either use a CLI or npm.

curl -sSL https://rover.apollo.dev/nix/latest | sh
npm install -g @apollo/rover
  1. Usage

There are many ways to run an application using rover and some can be found here. This project uses rover to create a supergraph, to configure the creation of the supergraph use the supergraph.yml file. To create the supergraph use this command.

rover supergraph compose --config ./supergraph.yml --output supergraph.graphql

Buf

Buf is used to manage Protobuf definitions and generate client and server stubs for our services. Buf is configured in the buf.yml and the code generation is in buf.gen.yml.

Installation

Please follow the official instructions to install buf. Then verify it is installed correctly using

  buf --version

Usage

  1. Linting of proto files
  buf lint
  1. Generating code stubs
  buf generate --template buf.gen.yaml

About

This project is a distributed system that re-creates some of the functionality of existing aviation systems.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages