node package manager

moleculer

Moleculer logo

Build Status Coverage Status Codacy Badge Code Climate David Known Vulnerabilities Join the chat at https://gitter.im/ice-services/moleculer

Downloads FOSSA Status

Moleculer NPM version

Moleculer is a fast & powerful microservices framework for NodeJS (>= v6.x).

Website: https://moleculer.services

Documentation: https://moleculer.services/docs

What's included

  • Promise-based solution
  • request-reply concept
  • event bus system
  • supports middlewares
  • service mixins
  • multiple services on a node/server
  • built-in caching solution (memory, Redis)
  • pluggable transporters (NATS, MQTT, Redis)
  • pluggable serializers (JSON, Avro, MsgPack, Protocol Buffer)
  • load balanced requests (round-robin, random)
  • every nodes are equal, no master/leader node
  • auto discovery services
  • parameter validation with fastest-validator
  • distributed timeout handling with fallback response
  • health monitoring, metrics & statistics
  • supports versioned services (run different versions of the service)
  • official API gateway module

Installation

$ npm install moleculer --save

or

$ yarn add moleculer

Create your first microservice

This example shows you how to create a small service with an add action which can add two numbers.

const { ServiceBroker } = require("moleculer");
 
let broker = new ServiceBroker({ logger: console });
 
broker.createService({
    name: "math",
    actions: {
        add(ctx) {
            return Number(ctx.params.a) + Number(ctx.params.b);
        }
    }
});
 
broker.start();
 
// Call service 
broker.call("math.add", { a: 5, b: 3 })
    .then(res => console.log("5 + 3 =", res))
    .catch(err => console.error(`Error occured! ${err.message}`));

Try it on Runkit

Create a Moleculer project

Use the Moleculer CLI tool to create a new Moleculer based microservices project.

  1. Install moleculer-cli globally

    $ npm install moleculer-cli -g
  2. Create a new project (named first-demo)

    $ moleculer init project-simple first-demo

    Add API Gateway and press Y to npm install

  3. Open project folder

    $ cd first-demo
  4. Start project

    $ npm run dev
  5. Open the http://localhost:3000/math.add?a=5&b=3 link in your browser. It will call the add action of math service with two params via API gateway and returns with the result.

🎉Congratulations! You created your first Moleculer based microservices project. Read our documentation to learn more about Moleculer.

Official modules

We have some official modules for Moleculer. See the list!

Documentation

You can find here the documentation.

Changelog

See CHANGELOG.md.

Roadmap

See ROADMAP.md.

License

Moleculer is available under the MIT license.

3rd party licenses

Contact

Copyright (c) 2016-2017 Ice Services

@ice-services @MoleculerJS