/datasync

🚀 Complete GraphQL Node.js Server ready for production

Primary LanguageTypeScriptApache License 2.0Apache-2.0

AeroGear Data Sync

CircleCI Coverage Status

Home of the Aerogear Data Sync Framework. The goal of this project is to make it easier to build secure, production ready, realtime APIs and applications with GraphQL.

The project does this by taking the popular Apollo Server framework and adding additional components to solve some common problems.

  • Realtime Synchronisation
  • Conflict Detection and Resolution
  • Authentication and Authorization

The Voyager framework has a small ecosystem of components for building GraphQL based applications.

Client

  • voyager-client - JavaScript Client Library for building applications with Offline Capabilities

Server

  • voyager-server - The core Voyager Server module.
  • voyager-keycloak - Adds Authentication and Authorization to Voyager Server using keycloak.
  • voyager-conflicts - Provides server side conflict detection mechanisms for building offline enabled applications.
  • voyager-metrics - Adds Prometheus metrics to Voyager Server. Integrates with the AeroGear Mobile Metrics service.
  • voyager-audit - Adds Audit Logging functionality to Voyager Server. Audit logs can be consumed and visualised by the OpenShift EFK stack. (ElasticSearch + Fluentd + Kibana).
  • voyager-subscriptions - Simplifies the set up of GraphQL Subscriptions, used for real time updates.
  • graphl-mqtt-subscriptions - Enables the use of an MQTT Broker (Such as Mosquitto/RabbitMQ/Red Hat AMQ) as the Pub/Sub mechanism for GraphQL Subscriptions.

Local Development Setup

The Local Development Guide will help contributors to get started developing Voyager Server.

Contributing

The Contributing Guide will give you all of the information you need to ask for help, open Issues and open Pull Requests.

Examples

The Examples Guide walks through some example applications which highlight some of Voyager Server's features.

Reference implementation

Ionic Reference app provides example implementation of every feature offered by server together with Ionic based Mobile Application.

Docs

Documentation in docs/integreatly can be previewed using Antora using:

antora local-antora-playbook.yml