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

fix: latest tweets retrieval optimization is unpredictable #234

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Frazew
Copy link

@Frazew Frazew commented Nov 16, 2024

Summary

getTweets does not always return results in a predictable order, which means that the first tweet in not necessarily the latest one. This breaks the synchronization optimization because it relies on this assumption.

This fix reverses the implementation for this optimization: instead of preventing the sync when the latest tweet if cached, we prevent the sync by default but allow it to run if we find that any of the ${LATEST_TWEETS_COUNT} tweets is not cached.

Notes

  • Sorting the retrieved latestTweets could have been an option too, I didn't do that because reversing the logic felt more future-proof (who knows whatever they might break in the future). However I see no reason why it wouldn't work by sorting on the tweet ID, if you feel this should better be implemented this way, please tell me!
  • I have practically zero experience with Typescript! Please feel free to make suggestions/nitpicks

`getTweets` does not always return results in a predictable order, which
means that the first tweet in not necessarily the latest one. This
breaks the synchronization optimization because it relies on this
assumption.

This fix reverses the implementation for this optimization: instead of
preventing the sync when the latest tweet if cached, we prevent the
sync by default but allow it to run if we find that *any* of the
${LATEST_TWEETS_COUNT} tweets is not cached.
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.

1 participant