Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Adherence to deprecation standards: in at least one case, a new MFE has replaced a pre-existing IDA without porting commonly used features. This has to be avoided in the future.

2. Theming and branding

  • Incompatibility with comprehensive theming: The MFE theming and branding methods are not compatible with comprehensive theming. “It was something that we all kind of agreed on and now we are completely ignoring it.”

  • Yet another theming method that doesn’t fully replace the existing ones: Prior to MFEs, there were multiple theming methods that needed to be used if an Open edX LMS instance were to be totally themed. With MFEs, there is now not only one more method that also needs to be tackled: because MFEs are potentially different, each MFE would required a different one.

  • Applying theme changes require a full container rebuild: theme changes occur often enough and for enough instances that for many Open edX providers, this can become cost-prohibitive in terms of CPU time. (In one specific case: “1000 hours of compute time in an m5.large machine for building all of them”).

  • Multi-tenancy is not possible at scale due to the above theming concerns: this was explicitly named as a blocker that stopped upgrades from Koa to Lilac, and from Lilac no Maple.

...

  • Total complexity is now greater: instead of one complex monolith, we now have several less-complex projects in addition to the big one we started with. Plus, while less complex individually, MFEs are collectively harder to work with.

  • Our MFEs are not “true” micro-frontends: a more common architecture would be to build a mono-framework that, with module federation, still gives the development flexibility we see now, but more tight integration with the overall platform.

  • Outdated react-intl: the fact a very outdated version of react-intl is being used across the board makes it hard to implement i18n practically for consumers of frontend-platform and Paragon components.

  • Redux is far too complex for individual MFEs: the use of Redux is encouraged via frontend-platform, but given the size of most MFEs, it is likely overkill.

Call to action

Further community feedback on the following would be great:

...