def execute(subscription_id, event, object)
      # Lookup the saved data for this subscription
      query_data = read_subscription(subscription_id)
      # Fetch the required keys from the saved data
      query_string = query_data.fetch(:query_string)
      variables = query_data.fetch(:variables)
      context = query_data.fetch(:context)
      operation_name = query_data.fetch(:operation_name)
      # Re-evaluate the saved query
      result = @schema.execute(
        {
          query: query_string,
          context: context,
          subscription_topic: event.topic,
          operation_name: operation_name,
          variables: variables,
          root_value: object,
        }
      )
      deliver(subscription_id, result)
    rescue GraphQL::Schema::Subscription::NoUpdateError
      # This update was skipped in user code; do nothing.
    rescue GraphQL::Schema::Subscription::UnsubscribedError
      # `unsubscribe` was called, clean up on our side
      # TODO also send `{more: false}` to client?
      delete_subscription(subscription_id)
    end
def execute(subscription_id, event, object)
      # Lookup the saved data for this subscription
      query_data = read_subscription(subscription_id)
      # Fetch the required keys from the saved data
      query_string = query_data.fetch(:query_string)
      variables = query_data.fetch(:variables)
      context = query_data.fetch(:context)
      operation_name = query_data.fetch(:operation_name)
      # Re-evaluate the saved query
      result = @schema.execute(
        {
          query: query_string,
          context: context,
          subscription_topic: event.topic,
          operation_name: operation_name,
          variables: variables,
          root_value: object,
        }
      )
      deliver(subscription_id, result)
    rescue GraphQL::Schema::Subscription::NoUpdateError
      # This update was skipped in user code; do nothing.
    rescue GraphQL::Schema::Subscription::UnsubscribedError
      # `unsubscribe` was called, clean up on our side
      # TODO also send `{more: false}` to client?
      delete_subscription(subscription_id)
    end
`event` was triggered on `object`, and `subscription_id` was subscribed,
 so it should be updated.

 Load `subscription_id`'s GraphQL data, re-evaluate the query, and deliver the result.

 This is where a queue may be inserted to push updates in the background.

 @param subscription_id [String]
 @param event [GraphQL::Subscriptions::Event] The event which was triggered
 @param object [Object] The value for the subscription field
 @return [void]