@neo4j/graphql-amqp-subscriptions-engine
v2.0.0
Published
Subscriptions engine for `@neo4j/graphql`, supporting AMQP brokers such as RabbitMQ
Downloads
95
Readme
@neo4j/graphql-amqp-subscriptions-engine
Subscription plugin for @neo4j/graphql
, currently supporting AMQP 0-9-1 brokers such as:
- RabbitMQ
- Apache Qpid
- Apache ActiveMQ
Installation
npm install @neo4j/graphql-amqp-subscriptions-engine
Usage
const { Neo4jGraphQLAMQPSubscriptionsEngine } = require("@neo4j/graphql-amqp-subscriptions-engine");
const plugin = new Neo4jGraphQLAMQPSubscriptionsEngine({
connection: {
hostname: "localhost",
username: "guest",
password: "guest",
},
});
const neoSchema = new Neo4jGraphQL({
typeDefs,
driver,
plugins: {
subscriptions: plugin,
},
});
To close the connection with RabbitMQ:
await plugin.close();
Options
The following options are available in the plugin.
- connection: AMQP connection options or amqp url (e.g.
amqp://localhost
). - exchange: (optional) Queue exchange, defaults to
neo4j.graphql.subscriptions.fx
. - reconnectTimeout: (optional) Timeout (in ms) between reconnection attempts. If not set, the plugin will not reconnect. Note that if the first connection fails, it will not attempt to reconnect.
- log: (optional) Enable AMQP logs, defaults to
true
. - amqpVersion: (optional) AMQP version to use, only
0-9-1
supported at the moment.
Running tests
yarn test
to run unit testsyarn test:e2e
to run integration tests. These tests require a RabbitMQ instance running, and are not run by default- Use
docker-compose up rabbitmq
to spin up a RabbitMQ container for testing - Use
docker-compose up qpid
to spin up a Qpid container for testing
- Use