Node-ChakraCore update from Node.js Interactive 2017

Windows

Windows
Earlier this year, we
Please, Log in or Register to view URLs content!
on some key milestones achieved for Node-ChakraCore like cross-platform support, community participation for N-API, Node-ChakraCore on iOS and more. Today, as Node.js enthusiasts from all over the world gather in Vancouver, Canada for Node.js Interactive, we’d like to share an update on Node-ChakraCore – from its progress in handling production workloads and advancing N-API, to an update on running Node on iOS with ChakraCore.

Node-ChakraCore in production deployments


While Node-ChakraCore is still a pre-release project, and the team has been actively working on improving its reliability, performance and compatibility with popular Node.js modules. As with any new platform, running large production workloads is always a great challenge to test maturity and quality.

Today we are happy to announce that
Please, Log in or Register to view URLs content!
is handling 100% of its production traffic on Node-ChakraCore! This is a large global website, deployed across multiple datacenters across multiple regions, which handles over 16 million requests per month. Our site uses over 60 npm modules including popular ones like body-parser, cheerio, express, lodash, redis, winston, applicationinsights, and many more.

Node-ChakraCore was a drop-in replacement for Node runtime for this website, demonstrating great compatibility with the existing Node.js module ecosystem—we’re happy to report that not a single line of application code was changed to achieve this migration.

Please, Log in or Register to view URLs content!

The
Please, Log in or Register to view URLs content!
now runs 100% of production traffic on Node-ChakraCore


Node-ChakraCore is also beginning to see production usage outside of Microsoft properties, specifically for its
Please, Log in or Register to view URLs content!
(TTD) capabilities.
Please, Log in or Register to view URLs content!
is a global online travel company with various travel brands like
Please, Log in or Register to view URLs content!
,
Please, Log in or Register to view URLs content!
,
Please, Log in or Register to view URLs content!
,
Please, Log in or Register to view URLs content!
and
Please, Log in or Register to view URLs content!
. It handles around 3.5 million bookings per year across all its different brands.

Please, Log in or Register to view URLs content!

Travix uses Node-ChakraCore for their build system for the entire website, including their CI/CD pipeline.


Travix uses Node-ChakraCore for their build system for the entire website, including their CI/CD pipeline. According to Jean Baudin, a software developer at
Please, Log in or Register to view URLs content!
, the main reason for this was
Please, Log in or Register to view URLs content!
capability with Node-ChakraCore.


Using Time-Travel debugging in our CI/CD pipeline has significantly reduced our time to repro and diagnose the issues in our CI/CD pipeline

– Jean Baudin, Software Developer, Travix.com

Their home-grown CI/CD pipeline uses TTD record functionality for pre-production testing to automatically capture traces in case of errors, which is then used offline by developers to quickly reproduce the problem in
Please, Log in or Register to view URLs content!
with ability to step back and understand the control flow of the faulty execution, thereby saving time in searching through logs and reconstruction of the repro steps. Travix also uses Node-ChakraCore in its production deployment of one of their microservices that handles its gateway to connect to
Please, Log in or Register to view URLs content!
for their database access.

These deployments are a significant milestone in our journey to enable Node-ChakraCore as a drop-in replacement for production sites in the future. Our goal is to exit pre-release status having rigorously validated Node-ChakraCore to meet the high quality bar expected by Node.js developers.

ABI Stable Node.js API (N-API)


Evolving the Node.js ecosystem through community participation is one of the main objectives of Node-ChakraCore and we are humbled to have the opportunity to participate in the conversations regarding future of Node.js. The
Please, Log in or Register to view URLs content!
is one such example of the Node-ChakraCore team collaborating with the API working group and others in the community to solve a real-world problem for Node.js native module developers by helping define and implement a new ABI stable API surface for Node.js. ABI stability is very important to have a healthy and robust module ecosystem that allows more potential for future growth of the platform. N-API helps reduce the maintenance costs for native module authors by allowing them to compile their modules just once for all future Node versions. More significantly for native module consumers, it reduces friction in upgrading to new Node version since the native module dependencies will “just work” against the new version of Node.

N-API has been available as an
Please, Log in or Register to view URLs content!
since May 2017 in Node 8.0, and we’ve been excited by the interest shown in just a few short months, as can be seen by the chart below showing downloads of the
Please, Log in or Register to view URLs content!
module.

Please, Log in or Register to view URLs content!

Downloads of the node-addon-api module (via
Please, Log in or Register to view URLs content!
)


We’ve heard lots of great feedback from the community on the initial implementation. The working group has been able to quickly act on your feedback, and has recently landed several important changes available in Node.js 8.6—most notably, the
Please, Log in or Register to view URLs content!
, which now enables N-API module deployments in prod/pre-prod environment without having to change the deployment scripts, making it easier to
Please, Log in or Register to view URLs content!
and support for
Please, Log in or Register to view URLs content!
. With this, all known breaking changes have landed in Node 8.6, and we now strongly encourage module maintainers to consider porting a native module to N-API.

The next milestone for N-API is to exit the experimental status, which depends on community adoption. Check out the
Please, Log in or Register to view URLs content!
to find out different ways to help in moving this project forward.

Node.js for Mobile Apps


Node.js was born in the cloud, but recently we’ve seen growing interest in running Node.js on mobile devices. Some examples include hood.ie’s
Please, Log in or Register to view URLs content!
, Rockwell Automation’s
Please, Log in or Register to view URLs content!
solution for factory floor device automation, and
Please, Log in or Register to view URLs content!
from Craftwork, which runs both on a set-top box and on an iPad to allow same content consumption experience on a TV and on a tablet, and many more.

Please, Log in or Register to view URLs content!
recent
Please, Log in or Register to view URLs content!
about their
Please, Log in or Register to view URLs content!
project is another step towards addressing this growing trend. Earlier this year Janea Systems had
Please, Log in or Register to view URLs content!
of Node.js running on iOS, today the project is available for free and is open source so that the community can start building on it. We are delighted to see Node-ChakraCore being used as a key part of this solution to provide Node.js runtime on iOS and to expand the reach of Node.js usage.

What’s Next


The focus for Node-ChakraCore is to continue making progress on performance, compatibility and cross-platform support for the
Please, Log in or Register to view URLs content!
API. In the last 3 months, Node-ChakraCore has gained 30% perf improvement on ACME Air benchmark on Linux. We will be sharing more on this in the coming months.

Get involved


We would like to thank everyone who is already involved and invite more people to help advance the
Please, Log in or Register to view URLs content!
project. If you are building something using Node-ChakraCore, we’d love to hear from you and learn from your experience. Here are some of the ways to help out. If you are a:

  1. Node.js Developer – Try testing
    Please, Log in or Register to view URLs content!
    in your project, and use
    Please, Log in or Register to view URLs content!
    with
    Please, Log in or Register to view URLs content!
    and let us know how it goes.
  2. Node.js module maintainer – Try testing your module with
    Please, Log in or Register to view URLs content!
    . Use
    Please, Log in or Register to view URLs content!
    to add Node-ChakraCore in your own CI to ensure ongoing compatibility. If you run into issues, please let us know at
    Please, Log in or Register to view URLs content!
    or our
    Please, Log in or Register to view URLs content!
    channel.
  3. Node.js native module maintainer – Consider porting your module to
    Please, Log in or Register to view URLs content!
    . N-API is the future of native modules on Node, and porting your module will help you reduce your maintenance costs and be ready for future versions of Node.js and will also work with Node-ChakraCore.

As always, we are eager to hear your feedback, so please keep it coming. Find us on Twitter
Please, Log in or Register to view URLs content!
, our
Please, Log in or Register to view URLs content!
or open an issue on
Please, Log in or Register to view URLs content!
to start a conversation.

Please, Log in or Register to view URLs content!
, Sr. PM JavaScript Platform and Tools

Please, Log in or Register to view URLs content!
 

Users who are viewing this thread

Top