Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Let’s just level set on some terms used throughout FC-0054. A lot of these overlap, but are used in different contexts.

MFE

Micro-frontend, yo. Not a perfect acronym since “frontend” is one word.

Compose, Composability, Composition, etc.

This is the ability to have more than one independently deployed MFE on the same browser page at the same time. You load a URL and parts of the page get pulled from multiple MFEs, each of which was bundled and deployed separately. This capability is the main thing we’re trying to get out of this work, because it fundamentally unlocks a bunch of downstream possibilities around sharing code, improving performance, decreasing maintenance burden, and preserving MFE independence.

Shell

The “shell” is the top or outer-most independently deployed application when composing frontends together.

Child

An MFE being composed into another, independently deployed MFE. This happens at runtime.

Remote

The webpack term for a child (see above) bundle of code from a separate build process.

Parent

The MFE that loads code from a remote bundle, resulting in a child MFE being composed into its UI. It may be the Shell application, or it may be one of the shell’s children loading content from another downstream MFE.

Page

The shell will contain a bunch of high level “pages” or routes, each of which is likely its own independently deployed child MFE.

Plugin

Another way of thinking about child code being loaded into a parent when it doesn’t take over the majority of the page, but is loaded into a smaller part of it.

Slot

An area of the page where a plugin (or page) can be loaded. Implies that content in that area is dynamically configured and could be overwritten.

Domain

An MFE may contain interfaces from one or more logical domains of the overall system. Studio, learning, learner dashboard, account settings, authentication, profile, etc., can all be considered domains. A domain may have subdomains, like how “learning” has course home and courseware inside it, or “authentication” has both login and registration. These are the fracture planes in our user journeys and code, and we find composition boundaries along their edges.

  • No labels