4.0 Release Notes

New Features

Performance

There are several background changes to improve performance:

  • the Node renderer is now based on Fastify instead of Express;

  • Rails communicates with the Node renderer over HTTP/2 Cleartext instead of HTTP/1.1.

    This should improve performance somewhat when the Node renderer is deployed on the same machine as the Rails app, and significantly more when they are deployed in separate workloads, thanks to multiplexing and better connection reuse.

They shouldn't require any changes to your existing code or configuration.

Breaking Changes

  • If you used Sentry or Honeybadger integrations for the Node renderer, remove the old configuration options starting with sentry_ or honeybadger_, and follow the Error Reporting and Tracing documentation.

Required dependency versions

  • Ruby 3+.

  • Node 20+ is not strictly required, but strongly recommended. If you're using older versions, you need to add

    "resolutions": {
      "@fastify/formbody": "^7.4.0",
      "@fastify/multipart": "^8.3.0",
      "fastify": "^4.28.1"
    }

    to your package.json, or to update your existing "resolutions" section.

  • Shakapacker 7+ (8 is recommended):

  • React on Rails 15+ (released together with this version).

Other changes

  • If you use an application performance management service, they generally break out HTTP requests. But different APM services support different HTTP client libraries, so please check if the one you use supports HTTPX. If not, you may want to add custom instrumentation.
    • Similarly, if you apply APM to the Node renderer, please check if it supports Fastify.