Reliability
Micro frontends load dozens of smaller modules from various sources. Every request has a certain chance of failing. As a result, the likelihood of some module failing to load is relatively high and should not be underestimated.
A good test to verify that the given application is, architecture-wise, on solid ground is to just disable one of its modules. Does it fail? Was the failure expected? Is an error reported? All these questions can then be answered. Indeed, while disabling the login functionality will result in a pretty much unusable application, the application itself should just keep on working. Otherwise, we've introduced too much coupling.
As with scalability, the best way to approach the reliability topic is by introducing loose coupling. Furthermore, the standard techniques to make HTTP requests more robust can be used, too:
- Set (very) small timeouts.
- Introduce retries for critical requests.
- Detect a connection loss and handle it gracefully...