O que é o Moleculer?

Moleculer é uma estrutura de microserviços rápida, moderna e poderosa para Node.js. Crie serviços eficientes, confiáveis & escaláveis na sua aplicação. O Moleculer fornece muitas funcionalidades para a construção e gerenciamento de seus microserviços.

Funcionalidades

  • solução baseada em Promises (compatível com async/await)
  • conceito de request-response
  • arquitetura conduzida por eventos com balanceamento
  • registro de serviços integrado & descoberta de serviços dinâmico
  • requisições & eventos com balanceamento de carga (round-robin, aleatório, uso de cpu, latência, sharding)
  • muitos recursos de tolerância a falhas (Circuit Breaker, Bulkhead, Retry, Timeout, Fallback)
  • sistema de plugin/middleware
  • suporte a serviços versionados
  • suporte a Streams
  • mixins de serviço
  • solução de cache integrada (Memory, MemoryLRU, Redis)
  • loggers plugáveis (Console, File, Pino, Bunyan, Winston, Debug, Datadog, Log4js)
  • transporters plugáveis (TCP, NATS, MQTT, Redis, NATS Streaming, Kafka, AMQP 0.9, AMQP 1.0)
  • serializadores plugáveis (JSON, Avro, MsgPack, Protocol Buffer, Thrift)
  • validadores de parâmetros plugáveis
  • vários serviços em um nó/servidor
  • arquitetura sem mestre, todos os nós são iguais
  • validação de parâmetros com fastest-validator
  • funcionalidade de métricas embutidas com reporters (Console, CSV, Datadog, Event, Prometheus, StatsD)
  • recurso de rastreamento embutido com exporters (Console, Datadog, Event, Jaeger, Zipkin)
  • API gateway oficial, Acesso a banco de dados e muitos outros módulos…

Quão rápido?

Passamos muitas horas para melhorar o desempenho do Moleculer e criar o mais rápido framework de microserviços para Node.js.

Benchmark local Benchmark remoto

Veja os resultados no seu computador! Basta clonar este repositório e executar npm install && npm start.

Confira os resultados de nossos benchmarks.

Versioning

Até que a Moleculer alcance a versão 1.0, breaking changes serão lançada com uma minor version. Por exemplo, 0.13.1 e 0.13.4 serão compatíveis com retrocessos, mas 0.14.0 terá breaking changes.

Node.js support

Moleculer segue o ciclo de releases do Node.js o que significa que a versão mínima requerida é a 12.