Payments are experiencing issues due to temporary restrictions in Russia. If your payment does not go through, please submit a support request.Our support team is available 24/7 — we are always here to help with hosting and server issues.We are now accepting requests for dedicated server rental and colocation services in our data center.Reminder: we recommend enabling backups for additional data protection.A new VPS/VDS lineup with NVMe storage and improved performance is now available.Maintenance work on some servers has been completed. All services are operating normally.
Article3 min readViews1

Cloudflare Improves Node Compatibility: Why App Migration Still Requires Testing

A new Workers module loading mechanism brings the environment closer to Node.js behavior. I examine what this changes for JavaScript service migration and where risks remain.

Compatible builder components merge into a unified mechanism
In this article

On September 9, 2026, Cloudflare announced a overhaul of the module registry in the Workers environment. The change affects how applications locate, load, and reuse parts of JavaScript code. This new mechanism brings the behavior closer to Node.js and is enabled via a separate compatibility flag.

Behind the technical announcement lies a clear problem: an application may build without errors but behave differently after migration. Matching supported function names does not guarantee identical environment behavior.

Why a library works in one place but fails in another

Modern services consist of custom code and numerous dependencies. Some connect at startup, while others load only during rare operations. For example, generating a report might load a library for the first time—a library that the standard site opening never uses.

Different environments have distinct rules for module resolution, format handling, and instance sharing. From the client's perspective, the result is simple: the developer demonstrated a working homepage, but the required operation failed after launch.

What to Check Before Migration

Ask the team to compile a list of the service's actual functions. Authentication, file uploads, exports, notification handling, and background operations must be verified separately. Scenarios that are used infrequently but are critical to the business are especially valuable.

Next, identify which dependencies interact with operating system capabilities. If a library expects to spawn an external process or write files in a standard way, migrating to a different environment requires a specific solution. The new module loader does not guarantee this out of the box.

Test After a Fresh Start

A service may behave differently on the first request compared to subsequent ones. Therefore, it is useful to check both cases: a cold start without a warmed-up state and repeated requests. An error that occurs only on the first request will still be encountered by a real user.

Another critical scenario is handling two simultaneous requests. Data from one client must not accidentally persist in shared state and affect another. During migration, you cannot rely solely on sequential manual button clicks.

Do Not Mix Migration With Major Refactoring

If you rewrite authentication, update all libraries, and change data formats simultaneously during migration, pinpointing the source of the breakage will be difficult. I would first ensure identical behavior for existing scenarios, then plan improvements as separate steps.

For an initial launch, you need a limited load segment and the ability to roll back. It is advisable to define failure indicators in advance: rising error rates, increased latency, and diverging results. The decision to roll back should then be based on observations, not the team's mood.

How to determine if the migration was beneficial

Do not compare only the time for a single request. Key factors include operational costs, ease of releasing changes, availability of required libraries, and the speed of incident resolution. A more modern environment may turn out to be more complex for a specific team.

Cloudflare's update removes some obstacles to migrating JavaScript applications. The next step remains with the developer: confirm compatibility for your specific service using your own data and scenarios.

Discussion0

Share your experience and ask questions. Comments without links appear after editorial review.

No comments yet. Start the discussion.