HTML Streaming
This is the place to discuss how HTML Streaming can be applied at GitLab.
What is Streaming
Introduction to Streaming video
Live Vue Worker Streaming example, (source)
Slow-motion HTML Streaming recording example
Screen_Recording_2023-01-26_at_16.37.41
Talk References:
- https://httparchive.org/reports/state-of-javascript
- https://developers.google.com/web/updates/2019/02/rendering-on-the-web?hl=en
- https://tech.ebayinc.com/engineering/async-fragments-rediscovering-progressive-html-rendering-with-marko/
- https://mxstbr.com/thoughts/streaming-ssr/
- https://blog.codinghorror.com/the-lost-art-of-progressive-html-rendering/
- https://jakearchibald.com/2016/fun-hacks-faster-content/
- https://www.builder.io/blog/from-static-to-interactive-why-resumability-is-the-best-alternative-to-hydration
- https://vuejs.org/api/ssr.html#rendertosimplestream
Potential candidates for Streaming
- Merge requests
- Overview
- Changes
- File (blob) view
- Blame view
Everyone's welcome to suggest their own candidates in the discussion.
Implementation
To be discussed...
Current blockers
- DOM-reliant libraries
dompurify
- Sharing
window.gon
: user settings, translations, etc...
SSR approach
- Requires a server, discussed in gitlab-org/gitlab#215365
WebWorkers approach
- Vue 3.2 requirement
Designs
- Show closed items
Relates to
- gitlab-org/gitlab #215365
Activity
-
Newest first Oldest first
-
Show all activity Show comments only Show history only
moved from gitlab-org/gitlab#358104 (moved)
- Stanislav Lashmanov marked this issue as related to gitlab-org/gitlab#215365
marked this issue as related to gitlab-org/gitlab#215365
- Stanislav Lashmanov added bugperformance frontend sectiondev labels
added bugperformance frontend sectiondev labels
- 🤖 GitLab Bot 🤖 added typebug label
added typebug label
- Stanislav Lashmanov added groupfoundations label
added groupfoundations label
- Stanislav Lashmanov changed the description
changed the description
- Stanislav Lashmanov mentioned in merge request gitlab-org/gitlab!84563
mentioned in merge request gitlab-org/gitlab!84563
- Stanislav Lashmanov changed the description
changed the description
- Author Maintainer
- Stanislav Lashmanov changed the description
changed the description
- Maintainer
Setting label(s) gitlab-org/gitlab~21094668 based on groupfoundations.
- 🤖 GitLab Bot 🤖 added 1 deleted label
added 1 deleted label
@leipert do you think this should be with our team? It is a cool proposal, but would we work on this?
- Owner
@cdybenko No, not necessarily. We do not have the bandwidth. I backlogged this for now. We could also move it to gitlab-org/gitlab~11610711.
@slashmanov Wonder if we should move this to: https://gitlab.com/gitlab-org/frontend/rfcs
1 Collapse replies - Author Maintainer
@leipert I wonder the same thing and I am not sure at the moment what's the best place for this. I don't have a specific implementation plan in mind, so this issue is just to discuss the feasibility of the idea in GitLab. Do you think we should move this to rfcs?
- Owner
I do not care too much
Can also be in "our" backlog. @leipert @slashmanov, let's move to gitlab-org/gitlab~11610711 for now, I don't want to give the impression we'll work on this.
1
- Lukas Eipert added meta label
added meta label
- Christen Dybenko added 1 deleted label and removed groupfoundations label
added 1 deleted label and removed groupfoundations label
- Lukas Eipert removed 1 deleted label
removed 1 deleted label
- 🤖 GitLab Bot 🤖 added [deprecated] Accepting merge requests label
added [deprecated] Accepting merge requests label
- Stanislav Lashmanov removed [deprecated] Accepting merge requests label
removed [deprecated] Accepting merge requests label
- 🤖 GitLab Bot 🤖 added [deprecated] Accepting merge requests label
added [deprecated] Accepting merge requests label
- Stanislav Lashmanov removed [deprecated] Accepting merge requests label
removed [deprecated] Accepting merge requests label
- Author Maintainer
Moving this to RFCs in order to avoid ~"Accepting merge requests" label assigned frequently.
Edited by Stanislav Lashmanov - Stanislav Lashmanov mentioned in issue #102 (closed)
mentioned in issue #102 (closed)
- Stanislav Lashmanov mentioned in issue gitlab-org/gitlab#369858 (closed)
mentioned in issue gitlab-org/gitlab#369858 (closed)
- Stanislav Lashmanov mentioned in merge request gitlab-org/gitlab!97611 (closed)
mentioned in merge request gitlab-org/gitlab!97611 (closed)
- Hannes Moser mentioned in issue #112 (closed)
mentioned in issue #112 (closed)
- Stanislav Lashmanov mentioned in issue gitlab-org/gitlab#378096 (closed)
mentioned in issue gitlab-org/gitlab#378096 (closed)
- André Luís mentioned in issue gitlab-org/create-stage#13064 (closed)
mentioned in issue gitlab-org/create-stage#13064 (closed)
- Stanislav Lashmanov mentioned in issue gitlab-org/gitlab#385686 (closed)
mentioned in issue gitlab-org/gitlab#385686 (closed)
- Stanislav Lashmanov mentioned in issue gitlab-org/gitlab#385901 (closed)
mentioned in issue gitlab-org/gitlab#385901 (closed)
- Stanislav Lashmanov changed the description
Compare with previous version changed the description
- Stanislav Lashmanov changed title from Streaming Vue Components to HTML Streaming
changed title from Streaming Vue Components to HTML Streaming
- Stanislav Lashmanov mentioned in merge request gitlab-org/gitlab!110208 (merged)
mentioned in merge request gitlab-org/gitlab!110208 (merged)
- Stanislav Lashmanov mentioned in commit gitlab-org/gitlab@5698eefc
mentioned in commit gitlab-org/gitlab@5698eefc
- Stanislav Lashmanov marked this issue as related to gitlab-org/gitlab#385686 (closed)
marked this issue as related to gitlab-org/gitlab#385686 (closed)
- Stanislav Lashmanov changed the description
Compare with previous version changed the description
- Author Maintainer
A quick update on the HTML Streaming using Vue SSR in WebWorkers. It hasn't proven to be profitable enough to justify the overhead it introduces yet. We probably might revisit it later when we complete migration to Vue 3.
Collapse replies - Owner
@slashmanov I'm cleaning up open RFCs and am going to close this for now. Let's reopen when if we decide to revisit it after the Vue 3 migration.
- Author Maintainer
@donaldcook we do not need Vue 3 to proceed with this. Actually we already have an implementation that doesn't rely on Vue completely in production. This is an ongoing effort because we're close to removing a feature flag for this. That's why I would like to leave it open for visibility so everyone can learn about Streaming and how they can apply it at their stage. I think we should be safe to close it once:
- Feature flag for blame page streaming is removed
- Performance is evaluated and learnings shared with the team
- HTML Streaming application is fully documented in frontend docs so everyone can learn how to apply it for themselves
Or if we decide to not proceed with HTML Streaming anymore.
Edited by Stanislav Lashmanov - Owner
@slashmanov Sounds good! Re-opening and adding fe-guidelines so we remember to document it.
- Stanislav Lashmanov mentioned in commit gitlab-org/gitlab@993f0a3c
mentioned in commit gitlab-org/gitlab@993f0a3c
- Stanislav Lashmanov changed the description
Compare with previous version changed the description
- Stanislav Lashmanov mentioned in commit gitlab-org/gitlab@3ab314a4
mentioned in commit gitlab-org/gitlab@3ab314a4
- Stanislav Lashmanov mentioned in commit gitlab-org/gitlab@d3f42d60
mentioned in commit gitlab-org/gitlab@d3f42d60
- Stanislav Lashmanov mentioned in commit gitlab-org/gitlab@10bf0da5
mentioned in commit gitlab-org/gitlab@10bf0da5
- Stanislav Lashmanov mentioned in commit gitlab-org/gitlab@eea74abc
mentioned in commit gitlab-org/gitlab@eea74abc
- Stanislav Lashmanov mentioned in commit gitlab-org/gitlab@18521fd2
mentioned in commit gitlab-org/gitlab@18521fd2
- Stanislav Lashmanov mentioned in commit gitlab-org/gitlab@f4f0e27a
mentioned in commit gitlab-org/gitlab@f4f0e27a
- Stanislav Lashmanov mentioned in issue gitlab-org/gitlab#392890 (closed)
mentioned in issue gitlab-org/gitlab#392890 (closed)
- Stanislav Lashmanov mentioned in commit gitlab-org/gitlab@7e71370b
mentioned in commit gitlab-org/gitlab@7e71370b
- Stanislav Lashmanov mentioned in commit gitlab-org/gitlab@4a99a7b5
mentioned in commit gitlab-org/gitlab@4a99a7b5
- Maintainer
@slashmanov Please note that the ~"group::not_owned [DEPRECATED]" label is scheduled to be removed on March 13th, 2023.
Please set a concrete group label following the guidance provided on the shared responsibility issues handbook page. Setting an adequate group label before the deprecated label removal will help your issue to receive proper attention.
If you are a community contributor and do not have access or context on picking group labels, please ping
@juan-silva
. Thanks!For more information on this label change, please refer to gitlab-com/www-gitlab-com#14321 (closed).
- Stanislav Lashmanov mentioned in commit gitlab-org/gitlab@9f00cb77
mentioned in commit gitlab-org/gitlab@9f00cb77
- Stanislav Lashmanov mentioned in commit gitlab-org/gitlab@9ecbc123
mentioned in commit gitlab-org/gitlab@9ecbc123
- Stanislav Lashmanov mentioned in commit gitlab-org/gitlab@3a62fd90
mentioned in commit gitlab-org/gitlab@3a62fd90
- Stanislav Lashmanov mentioned in issue gitlab-org/gitlab#398128 (closed)
mentioned in issue gitlab-org/gitlab#398128 (closed)
- Donald Cook closed
closed
- Donald Cook reopened
reopened
- Donald Cook added fe-guidelines label
added fe-guidelines label
- Stanislav Lashmanov mentioned in issue gitlab-org/gitlab#411964 (closed)
mentioned in issue gitlab-org/gitlab#411964 (closed)
- Stanislav Lashmanov mentioned in issue gitlab-org/gitlab#421512
mentioned in issue gitlab-org/gitlab#421512
- Stanislav Lashmanov mentioned in issue gitlab-org/gitlab#434229 (closed)
mentioned in issue gitlab-org/gitlab#434229 (closed)
- Stanislav Lashmanov mentioned in merge request gitlab-org/gitlab!181076 (merged)
mentioned in merge request gitlab-org/gitlab!181076 (merged)