• Home
  • Categorias
    • Central do RH
      • Recrutamento e Seleção
      • RH Tech
      • Negócios e Cultura
      • Retenção de Talentos
      • Histórias de Sucesso
      • Geekhunter
    • Mundo TI
      • Desenvolvimiento de software
      • Machine Learning & AI
      • Carreira de programador e dicas
      • Histórias de sucesso
  • Materiais Gratuitos
    • Conteúdo RH e Recrutamento
      • Webinars e Eventos
      • Materiais Gratuitos [HR]
      • Cursos GeekAcademy
    • Para desenvolvedores
      • Calculadora CLT x PJ
      • Quiz de Front-end
      • Quiz de Mobile
      • Guia Full Stack atualizado
      • Guia de Negociação Salarial para Devs
      • Modelo de Currículo Internacional
  • Login
    • Empresas
    • Para Talentos
      • Criar perfil gratis
      • Ver vagas
  • Home
  • Categorias
    • Central do RH
      • Recrutamento e Seleção
      • RH Tech
      • Negócios e Cultura
      • Retenção de Talentos
      • Histórias de Sucesso
      • Geekhunter
    • Mundo TI
      • Desenvolvimiento de software
      • Machine Learning & AI
      • Carreira de programador e dicas
      • Histórias de sucesso
  • Materiais Gratuitos
    • Conteúdo RH e Recrutamento
      • Webinars e Eventos
      • Materiais Gratuitos [HR]
      • Cursos GeekAcademy
    • Para desenvolvedores
      • Calculadora CLT x PJ
      • Quiz de Front-end
      • Quiz de Mobile
      • Guia Full Stack atualizado
      • Guia de Negociação Salarial para Devs
      • Modelo de Currículo Internacional
  • Login
    • Empresas
    • Para Talentos
      • Criar perfil gratis
      • Ver vagas

Início › Mundo TI › Desenvolvimiento de software › Saiba por que você deve utilizar Node.Js como a NASA

  • Foto de Geekhunter Geekhunter
  • dezembro 19, 2024
utilizar Node.Js

Saiba por que você deve utilizar Node.Js como a NASA

Um dos grandes fatores que impulsionam a adoção de uma nova tecnologia ou linguagem é a adoção por grandes empresas já consolidadas. Frameworks que nascem com a ‘marca’ Google, Twitter, Facebook ou Airbnb, por exemplo, ganham uma grande visibilidade frente a outras iniciativas com menos expressão no mercado e acabam atraindo mais desenvolvedores. Bootstrap, AngularJS, Ruby on Rails são alguns exemplos de tecnologias de sucesso e que caíram no gosto dos desenvolvedores, mas não são só Startups que se beneficiam da comunidade Open Source.

Em um painel recente Collin Estes, diretor de Engenharia de Software para a MRI Technologies, uma empresa contratada pela NASA para auxiliar no desenvolvimento do traje espacial para a agência americana revelou que utiliza Node.js nos sistemas que desenvolve. As vantagens que levaram à escolha do Node para essa aplicação você confere nesse post especial.

O Problema

Tudo pode parecer bastante calmo no espaço, a gravidade zero pode até dar uma impressão de tranquilidade, mas não se engane: a órbita terrestre é um ambiente extremamente hostil e perigoso. Tanto que uma equipe de profissionais fica em terra constantemente monitorando sinais vitais, projeções espaciais, velocidades relativas e um sem-número de variáveis advindas das mais diferentes fontes para garantir que tudo corra bem em missões na parte externa da estação espacial.

A partir de um incidente em uma dessas missões, onde água começou a vazar na parte interna do capacete do traje espacial, a equipe de comando de operações em terra identificou que os sistemas utilizados para a tomada de decisões críticas não eram otimizados. Informações e dados precisavam ser reunidos de sistemas espalhados, diferentes redes e fornecedores com tecnologias de propósito único, tipicamente.

Além da integração quase inexistente, dados duplicados, a incapacidade de consultas mais elaboradas e acesso a todas as fontes em tempo real levaram ao desenvolvimento de um novo sistema.

Node.js como solução

No contexto de implementar um sistema distribuído de alta performance, a iniciativa foi partir para um sistema em Elastic Search usando software Open Source com Node, Docker e RethinkDB. Isso permite uma maior flexibilidade e familiaridade com as tecnologias para empresas em futuros contratos com a agência. Toda a base de documentos migrou de datacenters específicos para a nuvem, e APIs RESTful foram criadas para facilitar a integração entre os sistemas. Dessa maneira, aplicações são criadas de maneira mais rápida e integrada, permitindo ao mesmo tempo uma maior escalabilidade e profundidade nas consultas e buscas.

Mas o que torna a linguagem tão revolucionária e adequada para esse tipo de aplicação? Simples: A mudança para um paradigma de orientação a eventos com um sistema de I/O não-bloqueante consegue lidar melhor com aplicações em tempo real, com um grande número de conexões simultâneas.

Feito para escalar

Um modelo de processamento diferente do que estamos acostumados é o responsável pela grande escalabilidade em aplicações I/O Intensive. Ao invés de alocar diversas threads para dar conta das requisições, esperando respostas lentas de acesso ao banco de dados, a arquitetura do Node.JS propõe uma thread única ativada por eventos para lidar com as requisições, enquanto distribui tarefas que demandam mais tempo para workers com respostas em callback.

Esse modelo otimiza a utilização de recursos em aplicações como chats em tempo real, streaming de dados, transações bancárias, ou mesmo proxy, coletando informações de diferentes provedores com tempos de resposta bastante variáveis (bastante utilizado em dashboards).

Dados prontos para uso

Outra grande vantagem é a utilização de bancos de dados como MongoDB ou RethinkDB que utilizam JSON nativamente, o que facilita a comunicação com as aplicações no lado do cliente em Javascript utilizando um único formato de dados seja no banco, servidor ou cliente. Isso evita conversões para modelos de dados intermediários (como acontece em Rails, por exemplo) e produz consultas mais rápidas.

O interpretador também lida de maneira bastante inteligente com requisições ao banco que não precisam de confirmação, como logs de sistema, ou em operações de menor relevância, onde consistência eventual nos dados é suficiente (‘Likes‘ do facebook, por exemplo). O cliente recebe a confirmação da requisição, mas o banco pode enfileirar as operações menos prioritárias para otimizar os recursos do sistema em momentos de gargalos ou alto tráfego.

Onde não usar Node.js?

As vantagens oferecidas pelo Node.js resolvem problemas de nichos específicos de aplicações onde requisições de Entrada-Saída são limitantes no sistema. Sistemas com necessidade intensiva de processamento podem acabar segurando a única thread que se comunica com o cliente (o Event Loop), já que o paralelismo nessa arquitetura só se aplica para tarefas nos workers de acesso ao banco. Além desse risco, o Event Loop acaba não tirando vantagem dos vários núcleos disponíveis nas máquinas na nuvem, o que diminui seu poder de processamento quando comparado com outros sistemas.

Aplicações que utilizam bancos de dados relacionais ainda são pouco suportadas em Node, acabam não aproveitando muito bem suas vantagens, ao passo que outros frameworks como Rails tratam de maneira muito mais simples e rápida esse tipo de desenvolvimento.

Em resumo, é preciso conhecer o domínio da sua aplicação para optar pela melhor solução disponível para determinado problema. Na MRI Technologies, o uso de Node.js facilitou a integração de sistemas através de APIs REST e abriu portas para a introdução de software open source em uma indústria tipicamente bastante fechada. Se você planeja construir serviços semelhantes, com muitos acessos em I/O e bancos de dados não sequenciais, não é nada mal confiar nos engenheiros aeroespaciais.

E você? O que acha sobre tudo isso? Deixe seu comentário!

Foto de Geekhunter

Geekhunter

Python IDE
10 melhores IDEs e editores de código em Python para 2025
o que é commit
O que é Commit e como usar Commits Semânticos
certificações em TI
10 certificações em TI muito valorizadas hoje
Consultor SAP: o que faz, salário e como se tornar um
limites do vibe coding
Os Limites do Vibe Coding: Quando a Inteligência Artificial Precisa da Engenharia de Software
perda de candidatos no processo seletivo
Perda de Candidatos no Processo Seletivo: 5 Motivos Críticos e Como Resolvê-los em 2026
MCP Model Context Protocol
MCP Model Context Protocol: O Guia Definitivo para Conectar IA aos Dados da Sua Empresa
funil de recrutamento
Funil de Recrutamento: Como Estruturar Seu Processo e Parar de Perder Talentos em 2026

Gosta do conteúdo? Assine nossa Newsletter!

Carreira de programador e dicas

Os Limites do Vibe Coding: Quando a Inteligência Artificial Precisa da Engenharia de Software

  • Geekhunter
  • julho 24, 2026
Recrutamento e Seleção

Perda de Candidatos no Processo Seletivo: 5 Motivos Críticos e Como Resolvê-los em 2026

  • Geekhunter
  • julho 24, 2026
Desenvolvimiento de software

MCP Model Context Protocol: O Guia Definitivo para Conectar IA aos Dados da Sua Empresa

  • Geekhunter
  • julho 17, 2026
Recrutamento e Seleção

Funil de Recrutamento: Como Estruturar Seu Processo e Parar de Perder Talentos em 2026

  • Geekhunter
  • julho 17, 2026
Recrutamento e Seleção

Recrutamento manual ainda faz sentido? Quando automatizar o processo de contratação

  • Geekhunter
  • julho 14, 2026
AnteriorAnteriorPor que investir tempo na criação de um bom job description
Próximo5 ferramentas de gestão para melhorar a produtividade do seu timePróximo

Rod. José Carlos Daux – SC
401, 4120 – km 4, Bairro Saco
Grande – Florianópolis – SC
CEP 88032-005

Para Profissionais
  • Criar Perfil
  • Vagas de tecnologia
  • Blog TI
  • Criar Perfil
  • Vagas de tecnologia
  • Blog TI
Para Empresas
  • Plataforma de Recrutamento Tech
  • Serviço de Recrutamento Tech
  • Nossos Planos
  • GeekAcademy
  • Blog Geekhunter
  • Perguntas Frequentes
  • Login Empresas
  • Plataforma de Recrutamento Tech
  • Serviço de Recrutamento Tech
  • Nossos Planos
  • GeekAcademy
  • Blog Geekhunter
  • Perguntas Frequentes
  • Login Empresas
A Geekhunter
  • Sobre a GeekHunter
  • Suporte
  • Políticas de Privacidade
  • Termos de Uso
  • Sobre a GeekHunter
  • Suporte
  • Políticas de Privacidade
  • Termos de Uso

Add Your Heading Text Here