Skip to content

Config discussion

Ali Ince edited this page Aug 3, 2023 · 1 revision

1. Define filters for entities to capture changes for

neo4j.source.topic.topic1=(:Label{*}),(:Person)-[:KNOWS{*}]->(:Person)
neo4j.source.topic.topic2=(:Label{*}),(:Person)-[:KNOWS{*}]->(:Person)
...
...
...
neo4j.source.topic.topicn(.pattern)=(:Label {id: 5, *,-name,-surname}),(:Person {id: 5})-[:KNOWS{*}]->(:Person),()-[:KNOWS]-()
  • start with one cdc query per topic and improve later on
  • we can mix key values with inclusion/exclusion filters
  • cannot specify inclusion/exclusion filters on start/end nodes of relationship patterns

2. Metadata filters

  • executingUser
  • authenticatedUser
  • tx_metadata_key1: 1
neo4j.source.topic.topicn(.pattern)=(:Label {id: 5, *,-name,-surname}),(:Person {id: 5})-[:KNOWS{*}]->(:Person)
neo4j.source.topic.topicn.metadata=executingUser:neo4j,authenticatedUser:test,tx.metadata.key1: 1, tx.metadata.key1.x: 1, tx.metadata.key1.y: 2
  • add this as a secondary config key on the topic level, that is specified by key-value pairs.
  • is nested transaction metadata supported (let's verify if it is supported at all)?

3. Modes

  • verify if multiple topics are supported in source connector
  • keep existing query support in-place, as a default
neo4j.source.type=query (default initially)
neo4j.source.query=
neo4j.streaming.property=
  • add a new source type of cdc
neo4j.source.type=cdc
neo4j.source.topic.x=PATTERNS...

4. Config revamp

  • make configuration keys more consistent in terms of naming
  • use time units in timeout configuration rather than postfix'ing the config key with millis.
neo4j.connection.acquisition.timeout=10s

or

neo4j.connection.acquisition.timeout.millis=1000
Clone this wiki locally