0Pricing
React Academy · Lesson

Versioning, Deployment, and Orchestration

Deploy remotes independently with semantic versioning, manage shared library conflicts, and coordinate releases.

Versioning, Deployment, and Orchestration is a free React Academy lesson on CoddyKit — lesson 4 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the React Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

Independent Deployment: The Core Value

Module Federation's primary value is independent deployment: a team can update, test, and deploy their remote without coordinating with host teams or triggering host redeployments. The host picks up changes automatically the next time it loads remoteEntry.js from the remote's URL.

Versioning Remote URLs

Instead of serving remoteEntry.js at a fixed URL (which changes on every deploy), include a content hash in the URL: remoteEntry.[hash].js. This makes each deployment immutable — old URLs continue working, and the host references the new hash once it is updated to the new deployment. Immutable URLs enable aggressive CDN caching.

Feature Flags at the Infra Level

Because the host discovers remotes via URL, you can implement A/B testing at the infrastructure level: serve different users different remoteEntry.js URLs (pointing to different remote versions). This enables true canary deployments for micro-frontends without any feature flag logic in the application code.

The Manifest Approach for Flexible Discovery

Instead of hardcoding remote URLs in the Webpack config, the host fetches a JSON manifest at startup: GET /federation-manifest.json returns { buttonApp: 'https://cdn.example.com/button/remoteEntry.abc123.js' }. To update which version the host uses, update the manifest — no host rebuild required.

Rollback via Manifest Update

When a remote deployment introduces a regression, rollback is instant: update the federation-manifest.json to point to the previous remoteEntry.js URL. The host immediately starts using the old version on the next request cycle. No host rebuild, no host rollback, no coordination needed.

Webpack Module Federation 2.0

Module Federation 2.0 (the @module-federation/enhanced package) adds significant improvements: better TypeScript support with automatic type generation from remote manifests, runtime plugin API for custom loading logic, and enhanced shared scope management for complex version negotiation scenarios.

vite-plugin-federation for Vite

The vite-plugin-federation package brings Module Federation to Vite-based projects, using a similar configuration API to Webpack's ModuleFederationPlugin. It is compatible with both Vite remotes and Webpack hosts (and vice versa), enabling teams to migrate to Vite incrementally without abandoning Module Federation.

Dynamic Remotes at Runtime

For highly dynamic architectures, you can configure remote URLs entirely at runtime: import(remoteRegistry[featureName]) where remoteRegistry is populated by an API call. This enables plugin-like architectures where new micro-frontends can be added without any rebuild of the shell application.

The Shell App as Orchestrator

The shell application's primary job is orchestration: it reads the remote manifest, initializes Module Federation's runtime, registers remote modules under named routes, and renders the appropriate remote based on the current URL. The shell is intentionally thin — it knows what to load, not how to render it.

Monitoring Module Federation in Production

Add performance monitoring to remote loading: wrap remote imports in try/catch to handle loading failures gracefully (render a fallback UI if the remote is unavailable), measure the time to download remoteEntry.js and component chunks, and alert if remote load time exceeds a threshold (indicating CDN issues).

The Full CI/CD Pipeline

A mature Module Federation CI/CD pipeline looks like: remote team commits → CI builds remote → uploads immutable remoteEntry.[hash].js to CDN → updates federation-manifest.json → host picks up new remote on next user request. Each step is automated and the host team is never involved in remote deployments.

Module Federation Rollback Strategy

What is the fastest way to rollback a bad Module Federation remote deployment?

Lesson Recap

Module Federation enables true independent deployment: remotes deploy without host rebuilds, the host discovers new versions automatically. Use content-hashed remote URLs for immutable CDN caching and a dynamic manifest for flexible version routing and instant rollbacks. vite-plugin-federation brings these capabilities to Vite, and dynamic remote imports enable plugin-like architectures. The shell orchestrates remote loading, keeping itself intentionally thin.

Frequently asked questions

Is the “Versioning, Deployment, and Orchestration” lesson free?

Yes — the full text of “Versioning, Deployment, and Orchestration” is free to read here on the web, and the React Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the React Academy course, upgrade to CoddyKit PRO.

What will I learn in “Versioning, Deployment, and Orchestration”?

Deploy remotes independently with semantic versioning, manage shared library conflicts, and coordinate releases. You practise React Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start React Academy?

No prior experience is required. React Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 4 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Versioning, Deployment, and Orchestration” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this React Academy lesson?

Yes. Every React Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Module Federation: Dynamic Runtime Imports
  2. Configuring Host and Remote React Apps
  3. Sharing State and Routing Between Remotes
  4. Versioning, Deployment, and Orchestration
← Back to React Academy