-
Notifications
You must be signed in to change notification settings - Fork 351
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/deep insert request #2653
Feature/deep insert request #2653
Conversation
561e065
to
9480f4a
Compare
4575552
to
1f8b7d2
Compare
...tionalTests/Tests/DataServices/UnitTests/Client.TDD.Tests/Tests/DeepInsertSaveResultTests.cs
Show resolved
Hide resolved
...tionalTests/Tests/DataServices/UnitTests/Client.TDD.Tests/Tests/DeepInsertSaveResultTests.cs
Show resolved
Hide resolved
333e504
to
a5481ea
Compare
...tionalTests/Tests/DataServices/UnitTests/Client.TDD.Tests/Tests/DeepInsertSaveResultTests.cs
Outdated
Show resolved
Hide resolved
...tionalTests/Tests/DataServices/UnitTests/Client.TDD.Tests/Tests/DeepInsertSaveResultTests.cs
Outdated
Show resolved
Hide resolved
...tionalTests/Tests/DataServices/UnitTests/Client.TDD.Tests/Tests/DeepInsertSaveResultTests.cs
Show resolved
Hide resolved
...tionalTests/Tests/DataServices/UnitTests/Client.TDD.Tests/Tests/DeepInsertSaveResultTests.cs
Show resolved
Hide resolved
My concern with this feature is that it goes out of the flow of how users normally interact with the library to update objects ( This probably beyond the scope of this PR, but I think (as @g2mula had suggested) we should think of a way to unify these two APIs such that the library figures out which API call to make without burdening the user with that detail. Here's a high-level view of how we could achieve that:
|
@habbes I think leaving the library to determine the root object might be tricky because we can have several objects that have connections but they are not the specific resource type that the client wants to deep-insert. Also deep-insert API will be of a particular type for example. This can lead to several deep insert requests being created for endpoints that do not even exist. I see this approach to be error-prone. |
@ElizabethOkerio In my suggestion (at least for a conceptual first iteration), I propose for deep insert to be used only if the customer enables the flag and all the changed objects are in the same subgraph such that they could be fulfilled by a single deep insert/update. There would still be a challenge to determine what is/are the root objects (esp. if there are cycles). But we would transparently fall back to the a batch or multi-request approach if these conditions are not met. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved since the feature is still internal. Looking forward to seeing the e2e tests.
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
Hi, Is there any info when the Deep Insert functionality will make it into a Release? Thanks! Br, |
Issues
This pull request fixes #xxx.
Description
Briefly describe the changes of this pull request.
Checklist (Uncheck if it is not completed)
Additional work necessary
If documentation update is needed, please add "Docs Needed" label to the issue and provide details about the required document change in the issue.