JSPM

  • Created
  • Published
  • Downloads 68738
  • Score
    100M100P100Q141278F
  • License MIT

Fast & powerful microservices framework for Node.JS

Package Exports

  • moleculer
  • moleculer/index
  • moleculer/src/errors
  • moleculer/src/serializers/base
  • moleculer/src/transporters
  • moleculer/src/transporters/base
  • moleculer/src/validator

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (moleculer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Moleculer logo

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

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
  • multiple services on a node/server
  • built-in caching solution (memory, Redis)
  • multiple supported transporters (NATS, MQTT, Redis)
  • multiple supported 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
  • distributed timeout handling with fallback response
  • health monitoring, metrics & statistics
  • supports versioned services (run different versions of the service)

Installation

$ npm install moleculer --save

or

$ yarn add moleculer

Your first microservice

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

The fastest way is that use Moleculer CLI tool to create a new Moleculer based microservices project.

  1. Install moleculer-cli

    $ 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.

🎉Congratulation, you created your first Moleculer based microservices project. Read our documentation to learn more about Moleculer.

Documentation

You can find the documentation here.

Changelog

See CHANGELOG.md.

Roadmap

See ROADMAP.md.

License

Moleculer is available under the MIT license.

Contact

Copyright (c) 2016-2017 Ice Services

@ice-services @MoleculerJS