Skip to content
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

Document that state strings SHOULD persist for a decent time period (e.g. 1 month) #119

Closed
brong opened this issue Jul 19, 2017 · 2 comments

Comments

@brong
Copy link
Member

brong commented Jul 19, 2017

3.10.1 getFoos

state: need to specify scope and duration of this string. I'd guess it is scoped to the specific getFoos request, so there's no requirement for portability of this state token to other users or types. But it'd be better if it's quite persistent (e.g., lasts a month or until the client issues an update).

If the cannotCalculateChanges error occurs too frequently, the server becomes problematic for client performance. A quality server should strive to persist state tokens for several clients per user for at least a month.

@filipnavara
Copy link

As long as it is a SHOULD requirement than I would very much welcome that [with my client writer hat on].

As a server writer, working with legacy backend thought me that the performance improvement of simply being able to determine if anything changed since the last sync at all is a notable performance improvement by itself. On resources that change infrequently (eg. personal calendars) we returned cannotCalculateChanges (or equivalent in other protocols) after any change and returned empty response when no change occurred. It saved a lot of network traffic and computing resources. It was worth it for both the server and the clients. Furthermore, this implementation allowed the "state" to consist only of the highest modification time and the number of items. Both of which could be calculated from existing data without keeping any log.

@brong
Copy link
Member Author

brong commented Jul 19, 2017 via email

@neilj neilj closed this as completed in d8bf356 Aug 28, 2017
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

No branches or pull requests

2 participants