Skip to content

Conversation

fbiville
Copy link
Contributor

No description provided.

@neo4j-connectors
Copy link
Collaborator

neo4j-connectors commented Sep 12, 2025

Warnings
⚠️ ❗ Please include a description of your PR changes.

Pull request should have a description of the underlying changes.

Generated by 🚫 dangerJS against 0a53701

The `ImportPipeline` exposes a new API, that returns an
`ImportExecutionPlan`.

An execution plan is made of independent groups.
Each group can be processed in parallel and is made of
sequential stages.
Each next stage, within the group, depends on the completion of
the previous stage.

Finally, each stage is made of independent steps, they can be
processed in parallel.
@fbiville
Copy link
Contributor Author

fbiville commented Sep 15, 2025

TODO: add some benchmark(able) sequential vs. parallel examples with Java driver
TODO: spread overlapping rels across different stages (see TODO/FIXME in code)

assertThat(stages.get(0))
.isEqualTo(new ImportStepStage(Set.of(categorySource, productInCategorySource, productSource)));
var productNodeStep = new NodeTargetStep(
new NodeTarget(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: I know we have constructors here primarily for deserialization. Do you think it is worth adding an optional builder support (though a constructor or as new NodeTarget.Builder().build() to make this more readable in other cases.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💯 I have only taken care of deserialization as you guessed, so the available APIs are pretty verbose at the moment.
Builders would make a lot of sense indeed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants