-
Notifications
You must be signed in to change notification settings - Fork 8
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
feat: Load-time under 1 sec #271
Comments
@SgtPooki the draft looks great, some additional pointers and context: Maybe we should define performance targets by the number of issues, having 1second load times is a bit vague. Say a starmap with
We can have a progress bar of some sorts that shows on top of page or on an overlay to make it obvious what's happening.
For this I would like to explore
This would be hard to implement, how would caching starmap content map to ipfs? I think this would need to be thought through.
Yes, I think we've discussed about this in the past, we can have a simple in-memory cache to have the model cached per node and just load that very fast. We can force-refetch if need be or update every few hours to make the process smooth. Should that be the first thing to explore? |
Thanks for the feedback @whizzzkid
I love the idea of having a baseline we can target. I think the bacalhau roadmap is a great one to target since there are hundreds of issues.
I think a progress bar would be a great solution, but could easily look odd and take a lot of development time for cases where the progress bar loads too fast. I am a fan of simple counts. I think we should stick to simply displaying the total number of issues being requested for the given URL, and then the count of fetched issues. Those numbers will adjust as appropriate and users have an accurate expectation without having to see a fluctuating progress bar (7/8 -> 7/15 will look odd)
Absolutely down with that.
Yea, it would definitely take some time to nail down a proper solution here, but this would help reduce costs of maintaining infrastructure if we go with our own hosts. For now, I think this idea could be punted.
We should probably not start here.. there's a lot of optimization to be done elsewhere and vercel gives a lot of devops and devex improvements that I don't want us handling right now feel free to adjust the issue description as you see fit so that the plan is accurate |
@SgtPooki : are the checklist items above in frontend/backend the remaining items for closing this out? |
@BigLep I don't think the checklist above is accurate. I will update it. @whizzzkid I think both frontend tasks can be deferred, and one backend task can be deferred, but i do want to look into using vercel's server side function cache. Have you done any of that work yet? If not, I can take that on immediately after kubo-rpc-client work. |
Moved out the remaining front-end tasks to #334 |
@SgtPooki can this be closed? |
Im working on vercel caching by adding cache-control header and then we'll close this out Should have PR out for that shortly. Almost had it finished last night but ran out of time. |
Closing this as #337 was merged. we can revert if it causes issues, and I will inform #engres-milestone-tool to let us know if they experience any stale data or other potential caching issues |
There is a goal of having load-times under 1 second, this issue is for tracking the proposal, agreement, and implementation of the work targeting that goal.
Current problems
Goal
Setting expectations
The goal is to get load times, essentially the user "experience" to under 1 second. As @whizzzkid has pointed out previously, loading all data in under 1 second from github is... not likely. Especially for multi-team and org-wide roadmaps. So, we must do the best we can for our users, having a usable state as soon as possible. Below, in "The goal" is how we will define usable state for the sake of this task.
The goal
For a usable state, all of the below items are to be true within less than 1 second from page request.
Proposal
This proposal is broken up into two sections, one for the frontend and one for the backend.
Frontend
Backend
Additional options we should discuss
Related/sub items
The text was updated successfully, but these errors were encountered: