Orchestrator

Applies to

Fully compatible with v3 and v4.
The orchestrator package ships with Native Federation v4, but v3 and v4 share the same runtime contract (remoteEntry.json), so it loads v3 and v4 remotes side by side.

The Orchestrator — @softarc/native-federation-orchestrator — is the next-generation browser runtime for Native Federation. It replaces the default Runtime (@softarc/native-federation-runtime) as the recommended way to load remotes on the host, whether the host is a SPA, a plain HTML page, or a server-rendered application (PHP, Rails, Java, …).

What makes it different

Compared to the classic runtime, the orchestrator adds five things:

The orchestrator stays fully compatible with the Native Federation ecosystem — any remote built with @softarc/native-federation (v3 or v4) that emits a standard remoteEntry.json can be loaded by it.

SSR

On v4 the Orchestrator runs server-side too, so remote modules execute during SSR itself — not just client-side after the page arrives. The /node entry installs a module.register() loader hook and bridges the host's shared singletons (hostInstances) so a remote's @angular/core resolves to the host's single instance. For Angular, the adapter's node-preload wires this for you — see Angular Adapter → SSR & Hydration. For the general picture see SSR & Hydration.

On v3 the Orchestrator was browser-only; a server-rendered host worked but loaded its remotes client-side after the page arrived. True SSR execution is a v4 capability via the /node entry.

New to Native Federation? Start with the Architecture Overview and Mental Model. For a focused comparison between the Orchestrator and the Classic Runtime — when to use which, semver resolution, caching — see v3 vs v4.

In this section

Example repositories