SCION Microfrontend Platform | Projects Overview | Changelog | Contributing | Sponsoring |
---|
SCION Microfrontend Platform > Feature Overview
This page gives you an overview of existing and planned platform features. Development is mainly driven by requirements of projects at SBB building a revolutionary traffic management system. Many other features are imaginable. If a feature you need is not listed here or needs to be prioritized, please file a GitHub issue.
Done In Progress Planned Deprecated
Feature | Status | Note | Doc |
---|---|---|---|
Communication | The platform provides a pub/sub layer on top of the native postMessage mechanism to enable microfrontends to communicate with each other across origins. The platform supports messaging in two flavors: topic-based and intent-based. |
Doc | |
Embedding of Microfrontends | Microfrontends are embedded using router outlets. A router outlet is a placeholder that the platform dynamically fills based on the current router state. A router outlet is implemented as a web component that wraps an iframe and solves many of the cumbersome quirks of iframes and helps to overcome iframe restrictions. Multiple outlets can display different content, determined by different outlet names, all at the same time. Router outlets can be nested. | Doc | |
Routing | In SCION Microfrontend Platform, routing means instructing a router outlet to display the content of a URL. Routing works across application boundaries and enables features such as persistent navigation. | Doc | |
Controlled Collaboration | The platform implements the concept of an application manifest per embedded micro application to enable controlled collaboration through the platform's Intention API. A micro application can provide functionality to other micro applications in the form of capabilities that other micro applications can consume by declaring an intention in their manifest. | Doc | |
Activator | A micro application can register an activator to initialize and connect to the platform upon host application's startup, i.e., when the user loads the web application into the browser. The platform loads all activators into hidden iframes for the entire platform lifecycle, thus, providing a stateful session to micro applications on the client-side. | Doc | |
Message Interception | The platform provides a common mechanism to intercept messages before their publication. An interceptor can reject or modify messages. Multiple interceptors form a chain in which each interceptor is called one by one in registration order. | Doc | |
Focus Tracking | The focus monitor allows observing if the current microfrontend has received focus or contains embedded web content that has received focus. It behaves like the :focus-within CSS pseudo-class but operates across iframe boundaries. |
Doc | |
Keystroke Bubbling | The router outlet allows the declaration of keystrokes, instructing embedded content at any nesting level to propagate corresponding keyboard events to the outlet. | Doc | |
Developer Tools | The Developer Tools (DevTools) is a SaaS microfrontend that developers can plug in when needed. With the DevTools, you can inspect integrated micro applications, browse available capabilities, analyze dependencies between micro applications, and more. | Doc |