Runtime

Applies to

The runtime — @softarc/native-federation-runtime — is the small browser-side library that reads remoteEntry.json files, constructs an ES module import map, injects it into the DOM, and resolves loadRemoteModule() calls against it. It is the classic Native Federation runtime: one version of each shared dependency, wired up on startup, and loaded on demand.

Classic runtime — not the default in v4.
This runtime is the default runtime in Native Federation v3 and is what @angular-architects/native-federation re-exports out of the box. It is the legacy runtime going forward: in v4 the recommended browser runtime is the new Orchestrator (@softarc/native-federation-orchestrator), which adds semver-range resolution, persistent caching and share scopes on top of the same remoteEntry.json contract.

The classic runtime is still supported — and still the right choice when you need raw simplicity, SSR compatibility on the host, or a drop-in v3 behaviour. If you are starting a new v4 project, prefer the Orchestrator.

What the Runtime Does

Given a list of remotes (or a manifest URL that resolves to one), the runtime:

What the Runtime Does Not Do

The classic runtime is deliberately thin. Things that are not handled here (and are reasons to reach for the Orchestrator in v4):

If any of those matter to you, look at the Orchestrator.

Where It Fits

The runtime is the consumer of the artifacts that Core emits. The contract between build and runtime is the remoteEntry.json file — the runtime does not care which bundler produced it. For how the runtime relates to the other layers, see the Architecture Overview.

In this section

If you are an Angular user, you will normally consume the runtime through @angular-architects/native-federation, which re-exports initFederation and loadRemoteModule unchanged. See Angular Adapter → Runtime for the Angular-specific bootstrap split.