moleculerjs / moleculer

:rocket: Progressive microservices framework for Node.js
https://moleculer.services/
MIT License
6.13k stars 580 forks source link

Who uses it? Usage examples #40

Closed autoferrit closed 7 years ago

autoferrit commented 7 years ago

I was just discovering this project starting out on a new one of my own. It looks nice. but I was wondering where it has been used in production. Or if anyone notable was using it. I think it looks great but if im going to start something new I don't want to start with any random framework.

as a comparison, outside of this i was probably going to go with hapi.js

icebob commented 7 years ago

Hi @autoferrit, Moleculer is a very new microservices framework. It is under heavy development. And before v1.x.x it is not recommended for production. I'm working on it alone in all my free time (but it is limited). If you need immediately a stable microservices framework I don't recommend Moleculer.

gino8080 commented 6 years ago

@icebob nice framework!

what you'll recommended for production?

icebob commented 6 years ago

Hi @gino8080, there are many companies who using Moleculer in production. It means Moleculer is stable for production, but before version 1.x some main parts maybe will be changed in the future. So it is recommended to lock the version number in your project.

gino8080 commented 6 years ago

@icebob thank you! I would like to integrate it on a HAPI server

do you have any hints?

thank you very much!

icebob commented 6 years ago

I recommend checking the moleculer-web code how it integrates itself to Express as a middleware.

tinchoz49 commented 6 years ago

Hi @gino8080 how are you?

We are using moleculer in production with hapi. What we did was create a hapi plugin that creates a service broker to connect our hapi server to the rest of the moleculer services that we have.

something like this:

exports.register = async (server, options, next) => {
  let broker = new ServiceBroker(/* ...config... */);

  broker.createService({
    name: 'hapi'
  });

  await broker.start();

  next();
};

exports.register.attributes = {
  name: 'service-broker'
};