Subscriptions
Graphback provides out of the box subscriptions support by providing one of the PubSubEngines
from https://github.com/apollographql/graphql-subscriptions library.
Developers can connect to any publish subscribe mechanism that is officially supported by graphql-subscriptions
or even write their own.
Graphback templates by default using InMemoryPubSubEngine
which is not designed to be used for production
use cases.
We recomend following engines:
- AMQ (MQTT) using https://github.com/aerogear/graphql-mqtt-subscriptions
- Redis - using https://github.com/davidyaha/graphql-redis-subscriptions
#
Subscriptions explainedGraphback provides subscriptions for every type of the operation that is happening on the server. This means that developers can explicitly subscribe to create, update and delete operations for particular resource.
Subscriptions can be also suppressed by developers by enabling or disabling subscription CRUD flags when initializing Graphback server
#
ConfigurationBy default, Graphback uses an in-memory PubSub mechanism. You can configure your own in buildGraphbackAPI
through the serviceCreator
.
In this example, we are using a MQTT enabled broker with @aerogear/graphql-mqtt-subscriptions
.
info
In this example the default createCRUDService
service creator is used. There can be variations in how to configure your PubSub mechanism depending on what service creator you choose to use.
#
Changing Subscription TopicsSome of the pub sub mechanism will require different format of the topic. Graphback CRUD services expose method that can be used to override how topics are build. For example for AMQ we can create extension of the CRUD service as follows
#
Running exampleIf you wish to use authorization mechanism you can try it on DataSync starter project