FC 0007 - Review of existing frameworks

We have reviewed the following technologies and frameworks as candidate solutions to help address the requirements of this FC.

In addition to the above listed in the original OEP document we have also explored

In general terms, both run-time integration solutions via javascript or web components can be classified as ground up efforts that require extensive architecture work to address many of the features and requirements that the other higher level frameworks explored here already addressed. Likewise, webpack module federation is not a complete solution and would require additional libraries to be bundled to provide a complete solution. WMF is in fact used extensively by single-spa and optionally by piral (and others) as part of the solution.

Podium is a mature node.js solution that works exclusively on the server side. Given the extensive use of client side deployments across the open edX platform, it is anticipated that a conversion to server side only rendering for all MFEs would be a problematic consequence of using podium as a solution.

Both Mosaic and OpenComponents are web component oriented MFE frameworks that do not depend on any JS framework. Mosaic is a newer framework with a smaller community. Documentation is not as robust and the project lacks the maturity to be a realistic candidate for the open edX platform at this stage. OpenComponents originated at OpenTable in 2014 and has been in active development since. While the platform is stable, the component based approach is very different from open edX’s current development and deployment models and the anticipated conversion cost is a greater. The solution also requires a live Registry/CDN service to host components, and applications are composed at runtime by querying the registry API. The requirement to deploy additional infrastructure to support the front end is not desirable.

Given the considerations listed above, this discovery process will focus on Piral and single-spa (as well as the Qiankun derivative) as candidate solutions.