October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk4 min

Your Plugin System Couldn’t Replace Plugins: The Missing Transaction

Moult treats plugin replacement as a lifecycle transaction: prepare and verify a candidate privately, publish it at commit, then dispose of the previous generation.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If a plugin upgrade fails halfway through activation, the host should still have the old plugin to serve requests. That is the problem Moult’s replacement design addresses: prepare a candidate generation privately, verify it, and only then make its capabilities visible. As Luke Green puts the question in his September 20, 2026 article, “What if an upgrade fails halfway through activating?”

Why replacing a registry value can take down a working plugin

A simple plugin registry often makes replacement look like an assignment: remove the old provider, initialize the new one, then store it. But initialization can fail. If the old value has already been removed when candidate setup throws, the host has lost a working capability even though the upgrade never completed.

For a long-running CLI daemon, editor, developer tool, or agent extension host, the important question is not just whether the new code can load. It is what remains available while it is being prepared, and what the host can safely publish if preparation fails.

Moult’s repository describes its approach this way: “A replacement is prepared in isolation, committed only after successful preparation, and followed by disposal of the previous generation.” The focus is lifecycle and capability visibility, rather than a direct overwrite of the live provider.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How Moult’s replacement transaction works

The protocol described by Green and the project documentation has four stages. The old generation remains the serving generation until the candidate passes preparation and verification.

1. Setup the candidate in a private scope

The host constructs the candidate generation in its own resource scope. The current generation continues serving while setup runs. Resources acquired by the candidate belong to that scope, so they can be cleaned up if setup does not complete.

2. Verify before exposing capabilities

Before publication, the runtime checks the candidate’s provided capabilities and conflicts. Capabilities staged during preparation are not visible to observers before commit. This keeps an incomplete candidate from appearing to be the active provider.

3. Commit at the publication boundary

If preparation and verification succeed, the runtime publishes or swaps to the candidate in one atomic step for the staged capabilities. If setup or verification fails before that boundary, the prior generation should remain active and usable under the project’s stated design.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Atomic publication is not a promise of rollback after commit. Once the new generation has been committed, the old generation’s disposal may fail; the project describes such a failure as inspectable, while leaving the replacement in place.

4. Dispose the previous generation

After a successful commit, the previous generation is disposed and its owned resources are released. Within a scope, cleanup occurs in reverse acquisition order—last in, first out—so resources acquired later are released before earlier ones.

What the transaction protects—and what it does not

  • Before commit: a candidate setup or validation failure should not displace the current generation.
  • At commit: staged capabilities are published together at the runtime’s commit boundary, rather than being exposed piecemeal during preparation.
  • After commit: a disposal problem with the previous generation does not roll back the committed replacement.
  • Outside the scope: the design does not establish that arbitrary external side effects can be undone. It is not a general-purpose rollback mechanism.

Each generation gets a fresh scope. The new generation therefore does not automatically inherit the old generation’s in-memory handles or UI state. Green specifically notes that React component state is not promised to survive replacement; durable state should instead live behind a host-provided capability.

Dependency handling is deliberately limited

Moult’s README says v1 rejects replacing a provider when active dependents would need rebinding. It does not silently redirect those dependents to the new provider. That is a meaningful limit: hosts that need dependent plugins to move together require a separately defined strategy, such as coordinated replacement, rather than assuming the runtime will rebind them.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

This makes the transaction a bounded lifecycle mechanism, not a complete answer to every dependency-graph upgrade. The host needs to account for provider relationships and treat a rejected replacement as a failed upgrade while the old generation remains in place.

Rank #4
Sale
Game Programming Patterns
  • Brand New in box. The product ships with all relevant accessories

Moult is not a sandbox, loader, or HMR system

The project README describes plugins as trusted code. Moult manages lifecycle and capability visibility; it does not restrict what trusted plugin code is permitted to do. It is also not a module loader or bundler, and the project says it does not rely on a global registry.

That distinction matters when comparing it with tools such as Vite HMR or Module Federation. Code delivery, module sharing, sandboxing, and safe lifecycle replacement solve different problems. Green frames Moult as addressing the failure case where candidate activation should not destroy the currently usable generation; that framing should not be read as a claim about every competing implementation.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What Green reports about tests and performance

Green’s September 2026 article reports nine replacement-transaction tests covering failed setup, failed validation, disposal ordering, and resource cleanup. It also reports 145 tests run in both Node and a DOM environment, for 290 total runs, and 15 documented invariants. These are figures reported by the article, not independently verified test results.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The article’s benchmark scenario averages about 16 ms for Moult and about 0.14 ms for a naive registry. The scenario includes installation, one failed replacement, and 100 successful replacements; the 16 ms figure is the whole scenario average, not the latency of one replacement. Green estimates about 0.16 ms per successful replacement in that environment and calls the result environment-specific, not a performance promise.

Green also reports a harness with a naive registry, Cordis 4.0.0-rc.9, and @moult/runtime 0.1.1. In that specific failed-upgrade scenario, the article says Moult survived without leaked resources while the other harness rows did not. This is an article-reported harness result, not a general product comparison or independent benchmark.

Project status and documentation

The availability information is inconsistent across the cited material: Green’s article refers to @moult/runtime 0.1.1 and invites installation, while both the Moult repository README and the runtime package README say the runtime is implemented or packaged but not yet released. Registry availability is not established by those documents, so check the package registry directly before relying on an install command.

For the design and its stated boundaries, see the project repository and Green’s September 20, 2026 article.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.