2021-01-31 - Micro Frontends: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
| Line 2: | Line 2: | ||
* Want different objects, eg catalogs/products etc, to be able to set default UI applications | * Want different objects, eg catalogs/products etc, to be able to set default UI applications | ||
* We will not restrict objects to only be viewed through their | * Many entities in the project may set their own UI app, eg catalogs can set the UI app used per catalog record | ||
* We will not restrict objects to only be viewed through their set UI app, users can select to force view them in other apps | |||
* SEO is important | * SEO is important | ||
* Extensibility by external teams is desired but can be applied later | * Extensibility by external teams is desired but can be applied later. Means allowing new client applications to build upon the code we have and deploy/maintain themselves | ||
= Composition options = | = Composition options = | ||
Revision as of 01:33, 11 February 2021
Considerations
- Want different objects, eg catalogs/products etc, to be able to set default UI applications
- Many entities in the project may set their own UI app, eg catalogs can set the UI app used per catalog record
- We will not restrict objects to only be viewed through their set UI app, users can select to force view them in other apps
- SEO is important
- Extensibility by external teams is desired but can be applied later. Means allowing new client applications to build upon the code we have and deploy/maintain themselves
Composition options
How to host/compile/deliver a set of micro frontends. All options require a wrapper app that delivers to the client that handles things like authorization.
Build-time
The client app is a single container that holds all micro frontends
Cons
- Large application to be downloaded
- Must recompile full app if any micro frontend changes
Server side
The server does all the work, creating a final html page that is delivered to the client. For example Lambda Edge directing the request to certain app/s according to rules.
Pros
- Can achieve strong SEO results
- Can do extra tasks like canary testing, url re-writing, internationalization from headers, presenting results specifically for bots
Cons
- Additional compute time/costs
Run-time
The client app is responsible for choosing which micro frontend to load according to the route. Builds and cleans the environment for each page.
Pros
- Only the required frontends are loaded
Cons
- Perhaps more difficult to initially setup
- Less control over which app client requests are directed to
References
At 15 minute mark explains different composition options clearly
Describes Lambda Edge features for server-side composition type