Node and NASA

If you’ve been following our blog you must have seen a few profile articles that we did on several big names that are using node.js in production. We’re talking about PayPal, Netflix, Uber, GoDaddy and there will be more to come. Big companies changing their tech stack to include Node is a big deal as well as startups that work from the ground up using Node or create node frameworks (see Thorin.js). This makes more people be interested and more importantly, be confident in node.js as a main technology. But how about this?

FIY: Collin Estes is the Director of Software Engineering @NASA. And yes, this means that NASA – National Aeronautics and Space Administration, the people who send people into outer space are using node.js.

Node’s journey at Nasa actually began in 2013 when a malfunction in one of spacesuits led to a complete reevaluation, one that wasn’t so easy as the data they had on the spacesuits, maintenance and previous spacewalks was spread out. Collecting the data necessary to figure out what went wrong turned out to be quite a difficult task. Considering they had to know what happened, as fast as possible, this presented another kind of system data problem.

The aforementioned Collin Estes is the Chief Architect at Mathematical Research Institute Technologies, (MRI Technologies). He and his team, together with the company that makes the spacesuits, United Technologies Corporation Aerospace Systems, went in to create a new centralized data system.

We took that on as a challenge, to not just continue to support our systems today, but also to make this conscious migration into the cloud with this web API, and to do that with no additional contract cost. My model centered around creating a an API-driven Node.js enterprise architecture.”

Collin Estes

The old way

Data was usually kept in siloes, organize in individual missions, a practice that was already being gradually changed. It wasn’t practical at all, Sandeep Shetye, NASA’s chief data architect said it took a 28 step process to get to the data you needed. The system created in node by Estes and his team reduced this to just 7 steps.

Choosing Node

JavaScript already was in use by the team at MRI Technologies, so choosing Node allowed them to stay on one platform which was very important. Here are a few of the key reasons why NASA chose node: (from the case study) 

  • The relative ease of developing data transfer applications with JavaScript, and the familiarity across the organization with the programming language, which keeps development time and costs low

  • Node.js’ asynchronous event loop for I/O operations makes it the perfect solution for a cloudbased database system that sees queries from dozens of users who need data immediately

  • The Node.js package manager, npm, pairs incredibly well with Docker to create a microservices architecture that allows each API, function and application to operate smoothly and independently. This encourages each of the three legacy database systems to play nice with each other while the data is transferred to the cloud.

The new way – the Node way

The new way is actually a database arhitectura centering on node, using decoupled data module APIs and applications running as independent microservices. The APIs send document data from the legacy Oracle and Microsoft SQL Server databases to RethinkDB instances running on Amazon Web Services to be indexed via nightly Extract-Transform-Load (ETL) jobs. Read the full case study called: Node.js Helps NASA Keep Astronauts Safe and Data Accessible here.