Subscription events

This is the documentation of the GraphQL Library version 6. For the long-term support (LTS) version 5, refer to GraphQL Library version 5 LTS.

This page covers a variety of subscription options offered by the Neo4j GraphQL Library.

CREATE

Subscriptions to CREATE events listen only to newly created nodes, not new relationships. In this occasion, a new event is triggered for each new node, containing its properties.

This action is performed with the top-level subscription [type]Created, which contains the following fields:

  • event: the event triggering this subscription (in this case, CREATE).

  • created<typename>: top-level properties of the newly created node, without relationships.

  • timestamp: the timestamp in which the mutation was made. If a same query triggers multiple events, they should have the same timestamp.

As an example, consider the following type definitions:

type Movie @node {
    title: String
    genre: String
}

A subscription to any newly created node of the Movie type should look like this:

subscription {
    movieCreated {
        createdMovie {
            title
            genre
        }
        event
        timestamp
    }
}

UPDATE

Subscriptions to UPDATE events listen only to node properties changes, not updates to other fields. In this occasion, a new event is triggered for each mutation that modifies the node top-level properties.

This action is performed with the top-level subscription [type]Updated, which contains the following fields:

  • event: the event triggering this subscription (in this case, UPDATE).

  • updated<typename>: top-level properties of the updated node, without relationships.

  • previousState: the previous top-level properties of the node, before the UPDATE event.

  • timestamp: the timestamp in which the mutation was made. If a same query triggers multiple events, they should have the same timestamp.

As an example, consider the following type definitions:

type Movie @node {
    title: String
    genre: String
}

A subscription to any node of the Movie type with its properties recently updated should look like this:

subscription MovieUpdated {
    movieUpdated {
        event
        previousState {
            title
            genre
        }
        updatedMovie {
            title
        }
        timestamp
    }
}

DELETE

Subscriptions to DELETE events listen only to nodes being deleted, not deleted relationships. This action is performed with the top-level subscription [type]Deleted, which contains the following fields:

  • event: the event triggering this subscription (in this case, DELETE).

  • deleted<typename>: top-level properties of the deleted node, without relationships.

  • timestamp: the timestamp in which the mutation was made. If a same query triggers multiple events, they should have the same timestamp.

As an example, consider the following type definitions:

type Movie @node {
    title: String
    genre: String
}

A subscription to any deleted nodes of the Movie type should look like this:

subscription {
    movieDeleted {
        deletedMovie {
            title
        }
        event
        timestamp
    }
}