1.0.1 • Published 9 months ago

apollo-subscriptions-server v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
9 months ago

Neo4j/GraphQL Subscriptions with Apollo and RabbitMQ

This example application runs GraphQL subscriptions over a Neo4j database using the GraphQL Library for Neo4j on a Apollo server and RabbitMQ queue to provide production-ready scalability.

To run this demo:

  1. Run npm install
  2. Make sure the variables NEO4J_URL, NEO4J_USER and NEO4J_PASSWORD in server.js are set to you Neo4j database.
  3. Make sure the variable AMQP_URI is set to a running RabbitMQ server (or any AMQP "0-9-1" server).
  4. Run npm start
  5. Go to localhost:4000/graphql

Some example queries can be found at examples.graphql

Running RabbitMQ

For testing purposes, RabbitMQ can be run with the provided docker-compose.yml file by executing:

docker-compose up rabbitmq

Note that you need both Docker and Docker-compose installed to run it this way.

Running without RabbitMQ

If you are building a local dev server, you can run this demo without RabbitMQ, by using a local event system. To do this replacing the plugin setup in server.js from:

const plugin = new Neo4jGraphQLAMQPSubscriptionsEngine({
    connection: AMQP_URI,
});

To

const plugin = new Neo4jGraphQLSubscriptionsSingleInstancePlugin()();

And update the neo4j/graphql import to:

const { Neo4jGraphQL, Neo4jGraphQLSubscriptionsSingleInstancePlugin } = require("@neo4j/graphql");