Changelog

This feature has been released as a public beta in AuraDB Enterprise October Release and Neo4j Enterprise Edition 5.13 and breaking changes are likely to be introduced before it is made generally available (GA).

This page lists changes to the Change Data Capture feature in different versions of Neo4j.

Version 5.17

New features

Feature Details

Functionality New

Procedures names have moved into database namespace

The procedure names have been updated as follows:

  • cdc.earliest becomes db.cdc.earliest

  • cdc.current becomes db.cdc.current

  • cdc.query becomes db.cdc.query

Bug fixes

Fix Details

Missing BEFORE state changes in FULL mode

In FULL mode, when updating a node that was also part of either a new or deleted relationship change, the BEFORE state for that entity did not contain all the node’s properties - only the logical key properties.

Version 5.15

Updated features

Feature Details

Functionality Fix

Label selectors can match on either the BEFORE or AFTER state

Change selectors were evaluated against the state of the changed entity as it was BEFORE the change was applied. It is now evaluated on either the BEFORE or AFTER state.

As an example, the following change will be returned when using the either of the selectors {select:n, labels:[OldLabel]} or {select:n, labels:[NewLabel]}

MATCH (n:OldLabel) SET n:NewLabel REMOVE n:OldLabel

Functionality New

Updated details around logical keys in node entities to handle multiple key constraints on the same label

The structure for node keys has changed from

{
  "keys": {
    "Person": {
      "prop1" : 1,
      "prop2" : 2.0,
      "prop3" : "3"
    }
  }
}

to

{
  "keys": {
    "Person": [
      {
        "prop1" : 1,
        "prop2" : 2.0
      },
      {
        "prop3" : "3"
      }
    ]
  }
}

Functionality New

Updated details around logical keys in relationship entities to handle multiple key constraints on the same type

The structure for node keys has changed from

{
  "keys": {
    "prop1" : 1,
    "prop2" : 2.0,
    "prop3" : "3"
  }
}

to

{
  "keys": [
    {
      "prop1" : 1
    },
    {
      "prop2" : 2.0,
      "prop3" : "3"
    }
  ]
}

Version 5.13

Updated features

Feature Details

Functionality New

CALL cdc.query('A3V16ZaLlUmnipHLFkWrlA0AAAAAAAAABAAAAAAAAAAA', [
    {
        select: "e",
        authenticatedUser: "alice",
        executingUser: "bob",
        txMetadata: { specialId: 42 }
    }
])

The CDC query procedure cdc.query can now use metadata selectors for each of the entity selection types (e,n,r). The 3 options available are:

  • txMetadata: key/value pairs to match on

  • executingUser: the user that executed the transaction

  • authenticatedUser: the authenticated user that executed the transaction (may be different to executingUser when performing user impersonation)

Version 5.10

New features

Feature Details

Functionality New

Cluster support

CDC is now available in cluster environments