Network Performance Monitor
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    moleculerpublic

    Moleculer logo

    Build Status Coverage Status Codacy Badge Maintainability David Known Vulnerabilities Join the chat at https://gitter.im/moleculerjs/moleculer

    Downloads FOSSA Status Patreon PayPal

    Moleculer NPM version Twitter URL

    Moleculer is a fast, modern and powerful microservices framework for Node.js (>= v6.x).

    Website: https://moleculer.services

    Documentation: https://moleculer.services/docs

    What's included

    • Promise-based solution
    • request-reply concept
    • support event driven architecture with balancing
    • built-in service registry
    • dynamic service discovery
    • load balanced requests & events (round-robin, random, cpu-usage)
    • supports middlewares
    • service mixins
    • multiple services on a node/server
    • built-in caching solution (memory, Redis)
    • pluggable transporters (TCP, NATS, MQTT, Redis, NATS Streaming, Kafka)
    • pluggable serializers (JSON, Avro, MsgPack, Protocol Buffer)
    • pluggable validator
    • all nodes are equal, no master/leader node
    • parameter validation with fastest-validator
    • distributed timeout handling with fallback response
    • health monitoring, metrics & statistics
    • supports versioned services
    • official API gateway module and many other modules...

    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 first-demo

      Press Y on API Gateway & npm install

    3. Open project folder

      cd first-demo
    4. Start project

      $ npm run dev
    5. Open the http://localhost:3000/greeter/welcome?name=world link in your browser. It will call the welcome action of greeter service with a name param via API gateway and returns with the result.

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

    Official modules

    We have many official modules for Moleculer. Check our list!

    Supporting

    Moleculer is an open source project. It is free to use for your personal or commercial projects. However, developing it takes up all my free time to make it better and better on a daily basis. If you like Moleculer framework, please support it.

    Thank you very much!

    Documentation

    You can find here the documentation.

    Changelog

    See CHANGELOG.md.

    Contributions

    We welcome you to join to the development of Moleculer. Please read our contribution guide.

    License

    Moleculer is available under the MIT license.

    3rd party licenses

    Contact

    Copyright (c) 2016-2018 MoleculerJS

    @moleculerjs @MoleculerJS

    install

    npm i moleculer

    Downloadsweekly downloads

    3,187

    version

    0.12.5

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar