Absinthe.Subscription (absinthe v1.6.0) View Source
Real time updates via GraphQL
For a how to guide on getting started with Absinthe.Subscriptions in your phoenix
project see the
Define in your schema via
There are a couple of limitations to the beta release of subscriptions that are worth keeping in mind if you want to use this in production:
By design, all subscription docs triggered by a mutation are run inside the mutation process as a form of back pressure.
At the moment however database batching does not happen across the set of subscription docs. Thus if you have a lot of subscription docs and they each do a lot of extra DB lookups you're going to delay incoming mutation responses by however long it takes to do all that work.
Before the final version of 1.4.0 we want
- Batching across subscriptions
- More user control over back pressure / async balance.
Link to this section Summary
Link to this section Types
Link to this section Functions
publish( Absinthe.Subscription.Pubsub.t(), term(), Absinthe.Resolution.t() | [subscription_field_spec()] ) :: :ok
Publish a mutation
This function is generally used when trying to publish to one or more subscription fields "out of band" from any particular mutation.
Note: As with all subscription examples if you're using Absinthe.Phoenix
Absinthe.Subscription.publish(pubsub, user, [new_users: user.account_id])
# publish to two subscription fields Absinthe.Subscription.publish(pubsub, user, [ new_users: user.account_id, other_user_subscription_field: user.id, ])