TLDR: we’re holding a 3-hour XBlock Rendering Summit on Wednesday, August 7, 2024, from 18:00 - 21:00 UTC. Details here.
The problem
As some of you may already be aware, there are difficulties when trying to render XBlock views invididually in MFEs. We ran into them originally with frontend-app-library-authoring, more recently with the React Video Player, they threw a wrench into the release of the new Studio Unit Page in Redwood (link further down), and they affect the viability of the authoring experience in the upcoming version of Content Libraries.
The difficulties can be summed up as follows: for security reasons - particularly on the authoring side - we’d ideally render XBlocks in iframes, thus isolating them from the instance’s domain cookies. However, the main built-in XBlocks (Video, HTML, and Problem) have a lot of frontend dependencies which are currently expected to be provided by the runtime environment. This means that these dependencies have all to be loaded for each independent iframe. The browser does this in parallel, with the result that any page attempting to render more than, say, 10 blocks, will inevitably grind to a halt.
This can perhaps become self-evident by looking at the chunk of the PR that attempted to do this for the new Studio Unit Page:
The Learning MFE gets around some of these problems by iframing the entire unit page, which in turn still gets rendered by edx-platform. While this addresses the security issue, it is, however, less than ideal:
- It stops us from removing frontend code from edx-platform
- It enables built-in XBlocks to continue relying on an edx-platform-provided build- and runtime environment
- It makes it harder for XBlocks to take advantage of more modern technologies such as React
- etc…
Wat do?
It’s high time we get our heads together and figure a way forward so we can hopefully unlock some great features for Sumac and beyond. We started the conversation a few months ago, continued it at the conference, and now we need to finish it.
This is a formal invite to a 3-hour summit on Wednesday, August 7, 2024, from 18:00 - 21:00 UTC, to get down and dirty with all this and hopefully arrive at a plan. More details, including an agenda, at this page:
Please take the time from now until then to scrutinize the existing proposals in that page or to add ones that aren’t there. Include as much detail as you can. Feel free to post comments with questions or other notes, or just otherwise meaningfully add to that page so we can optimize synchronous time at the summit itself.
See you then!
Apologies for the taggery, but making sure the following people are aware: @braden, @Glib_Glugovskiy, @Felipe, @jmakowski, @kmccormick, @dave, @feanil, @brian.smith, @e0d, @jristau1984, @Kelly_Buchanan. If you want direct invites, let me know!