-
Notifications
You must be signed in to change notification settings - Fork 2k
[ENH] Eventual consistency in clients #5947
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
[ENH] Eventual consistency in clients #5947
Conversation
Reviewer ChecklistPlease leverage this checklist to ensure your code review is thorough before approving Testing, Bugs, Errors, Logs, Documentation
System Compatibility
Quality
|
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
| user_id: string; | ||
| }; | ||
|
|
||
| export type HashMap = { |
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.
Will revert these gen types after talking to @itaismith
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.
Did you run into any issues with the API gen here?
| @@ -0,0 +1,1867 @@ | |||
| { | |||
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.
Will revert these - they shouldn't be needed
|
My only API naming question is should we bias towards telling you what it does "skip_wal" or the benefit "fast_search" or the technical team "eventual_consistency" ... I lean towards eventual_consistency in this case. |
b46d7a5 to
bf3841d
Compare
43e5741 to
765cdbf
Compare
|
Clients support configurable read-level for search consistency Extends the Python (sync and async), JavaScript, and Rust client search APIs to accept an optional Key Changes• Added Affected Areas• Python collection search APIs This summary was automatically generated by @propel-code-bot |
rescrv
left a comment
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.
Question about design is for you. I'd prefer options, but we can always do an = None on a type in the future to make it optional.
| pub async fn search_with_options( | ||
| &self, | ||
| searches: Vec<SearchPayload>, | ||
| read_level: ReadLevel, |
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.
Thinking forward: It's search_with_options, not, search-with-read-level. Do we want to wrap ReadLevel in an options for non-breaking API extensions in the future?
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.
I am personally ok with adding that in the future, I am always a bit weary of single-item options. Its an easy change for any user due to the compiler IMO.
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.
Wdyt?
765cdbf to
73942af
Compare
bf3841d to
b8dae44
Compare
itaismith
left a comment
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.
Reviewed Python and JS clients
| user_id: string; | ||
| }; | ||
|
|
||
| export type HashMap = { |
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.
Did you run into any issues with the API gen here?
Nope - just worked |
a26d674
into
hammad/eventual_consistency_frontend

Description of changes
Summarize the changes made by this PR.
Test plan
How are these changes tested?
E2E Tests that check searches succeed were added.
pytestfor python,yarn testfor js,cargo testfor rustMigration plan
None required, the server handles both cases fwd/back.
Observability plan
Client changes don't entail this for now
Documentation Changes
Will update docs in a seperate PR