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

Questions on technical decision #2

Open
hdoro opened this issue Oct 17, 2024 · 0 comments
Open

Questions on technical decision #2

hdoro opened this issue Oct 17, 2024 · 0 comments

Comments

@hdoro
Copy link

hdoro commented Oct 17, 2024

Heya Aleksandra & Scott 👋

I've been looking into ways of using Gororobas.com's EdgeDB instance to power a local-first mobile app I'm building for it, it was great to stumble upon your work on this template - thank you! I love how we can use Replicache without worrying about breaking access policies ✨

I'm trying to understand the choices you've made and thinking how this would pan out for complex schemas and arrangements. Here are some questions that I came across:

  1. Can you elaborate on the use of todoID, instead of having only EdgeDB's native IDs?

    Unlike with classic client/server apps, Replicache apps can't rely on the server to assign unique IDs. That's because the client is going to be working with data long before it reaches the server

  2. Any reason for choosing raw EdgeQL vs. the query builder, other than speed & ease?
  3. Clarification on the push/pull strategy
    1. Why preface every patch with a clear operation? (op: "clear")
    2. In the pull route, do you always need to fetch all objects the current user/group has access to? Is there a lighter, faster way of achieving this? I can see this breaking with a few hundred/thousand of records, but perhaps I'm misunderstanding 🤔
    3. In the push route, should we cap how many Replicache patches we're processing? I'm afraid 100+ todos being synced at once after an offline work session would exceed transactions' limits
    4. I'm assuming your current approach is to always delete the entire datastore (clear), and then re-fill it again with those put patches for every single todo
  4. What happens with schema changes in production? Do patches not synced get dumped and ignored or is there a system to handle it? (As you can tell, I'm not very far in my Replicache knowledge yet)

Based on your answers, I'd love to put my understanding into practice with a PR, if you'd like that :)

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

1 participant