Compare what a rollback actually looks like — what gets reverted, how fast, and what the blast radius is — for a bug shipped via build-time microfrontend integration versus one shipped via runtime integration, such as a Module Federation remote.
answer
- blast radius = deployable unit size
- build-time rollback = whole host redeploy
- runtime rollback = one team's own pipeline
- needs versioned/immutable remote paths for instant rollback
- shared-dep bugs need host-level rollback even in runtime setups
basics
~20 sWith build-time integration, undoing a bug means redeploying the whole combined app to an older version, which affects everyone at once. With runtime integration, the team that broke it can usually just redeploy their own piece, so the fix or rollback is smaller and faster.
solid answer
~50 sIn build-time integration, all microfrontends live in one deployable artifact, so a rollback means redeploying the host to a previous build — reverting everyone's code back to its prior state simultaneously, even microfrontends uninvolved in the bug, and it's constrained by the host's own deploy/rollback tooling and speed. In runtime integration, each microfrontend is its own deployable unit fetched independently by the host, so rolling back typically means the owning team alone redeploys their previous version, or the platform points the manifest back at a prior URL — blast radius is scoped to that one microfrontend, other teams are unaffected, and it can happen on that team's own schedule without coordinating a host release. The trade-off is that runtime rollback requires you to actually have that infrastructure built and rehearsed — if the org only ever deploys latest with no easy way to address a prior version, runtime integration doesn't automatically give you fast rollback either.
go deeper
Can say build-time rollback reverts the whole app while runtime rollback can target one piece.
Can describe blast radius correctly for both and give a rough sense of why runtime is usually faster.
Knows the versioned/immutable-path caveat that runtime rollback speed depends on, and can name the shared-dependency exception.
Can design the rollback/versioning infrastructure itself, including immutable remote paths, a pointer-flip mechanism, and an incident-response diagnosis process for identifying which remote regressed, and can reason about when build-time's simpler always-redeploy-last-good-build story is actually safer for an org's operational maturity.
## The mechanism behind the difference Rollback scope follows directly from deployment coupling, so it's worth restating the mechanism before getting to the difference. - **In build-time integration**, every microfrontend's code is compiled into one host artifact — there is exactly one thing deployed to production, and exactly one thing that can be rolled back. - **In runtime integration**, each microfrontend is deployed as its own independent artifact, a set of files behind its own URL, and the host discovers and fetches whichever version is currently live at that URL when a user's browser needs it; there are effectively N independently deployable and independently rollback-able units. ## The build-time rollback Walk the build-time rollback scenario concretely. Say a catalog microfrontend ships a bug as part of the host's Tuesday release, which also happened to include unrelated changes from checkout and account. To roll back, the platform team reverts the host to Monday's build and redeploys it. That redeploy reverts catalog's bug, but it also reverts whatever checkout and account shipped on Tuesday, even if their changes were fine — there's no way to roll back just catalog's piece of a combined artifact without either a targeted revert-and-rebuild, cherry-pick the fix, rebuild, redeploy, which is slower and itself a new deploy that needs testing, or accepting collateral rollback of unrelated, working code. The blast radius of the rollback decision is the whole host, and the speed is bounded by however long the host's full build-test-deploy pipeline takes to run again, which for many orgs is minutes to tens of minutes, sometimes longer with a large test suite. ## The runtime rollback Now the runtime scenario. Catalog is deployed as its own remote at its own URL or version, discovered by the host via a manifest or import map. If catalog ships a bug: - the catalog team can redeploy their previous known-good version to that same discovery point, or in more mature setups the platform can flip a pointer back to a previously-deployed, still-live version of catalog without even needing a fresh deploy; - and critically, checkout and account, separate deployable units the host fetches independently, are completely unaffected; they don't get touched, tested, or re-released. The rollback decision and its execution stay entirely within catalog's team, on catalog's own pipeline, often in under a minute if pointer-flip infrastructure exists, without coordinating with any other team. ## The caveat That's the theoretical win, but it comes with a real caveat: runtime integration only delivers fast, scoped rollback if the org actually built the infrastructure for it. If every remote is always deployed to the exact same URL with the previous version simply overwritten and discarded, no retained prior artifact, no versioned path, then rolling back means the catalog team has to rebuild their previous commit from source and redeploy it fresh — not meaningfully faster than a host rebuild, and now depending on catalog's own CI being fast and their prior commit being trivially reproducible. Mature runtime setups avoid this by deploying remotes to versioned, immutable paths and having the host's manifest or a routing layer simply repoint at the previous versioned path — true instant rollback with zero rebuild. ## Failure modes Failure modes on the runtime side show up as coordination gaps rather than blast-radius problems. - **Misdiagnosing the source.** Because rollback is decentralized, there's no single redeploy-the-app button, so during a live incident someone has to correctly identify which one of N independently-owned remotes is the actual source of the regression before rolling back — misdiagnosing this in a system with many remotes can waste critical incident-response time compared to a build-time system where redeploying the last good host build is always a valid first move regardless of which microfrontend caused the issue. - **The shared-dependency case.** There's also a subtler risk: because a runtime rollback only touches one remote, if the bug was actually caused by a shared-dependency version bump negotiated at the host level, rolling back just catalog doesn't fix anything — the fix has to happen at the host or shared-scope level instead, which behaves more like the build-time case. ## Where it shows up A concrete real-world pattern: platforms like **Spotify's** internal microfrontend framework and **DAZN's**, both publicly documented as moving to independently-deployed, runtime-loaded frontend modules, explicitly cite scoped, fast, single-team rollback as a primary motivation alongside independent deploy cadence — the two benefits are really the same coin, since rollback is just deploying the previous version, and it inherits whatever independence the normal deploy path has.
- Does runtime integration always guarantee faster rollback than build-time integration?No — only if the org deploys remotes to versioned or immutable paths and has a mechanism to repoint the host's manifest at a prior version without a fresh rebuild. If remotes just overwrite the same URL on every deploy with no retained prior artifact, rolling back still means rebuilding from a prior commit, which can be just as slow as a host rebuild in build-time integration.
- In a runtime-integrated system, what kind of bug can't be fixed by rolling back a single remote?A bug caused by a shared dependency negotiated at the host or shared-scope level — for example if a host-wide upgrade of a shared library broke compatibility with several remotes' singleton requirements — since that's a host-level or shared-scope-level change, not something scoped to one team's remote, so it needs a host-level rollback or fix instead.
Build-time rollback is like recalling an entire shipped product because one ingredient was bad — everything on the truck comes back. Runtime rollback is like a food-delivery app swapping out just one restaurant's menu because that kitchen had a problem, while every other restaurant on the app keeps serving normally.
saying these in an interview costs you the question
- assumes runtime integration always means instant rollback with no infrastructure investment
- doesn't distinguish redeploying a previous version from pointing at an already-deployed previous version
- thinks rolling back one remote fixes shared-dependency-level bugs
- can't explain why build-time rollback affects unrelated teams' code