This is a Moleculer-based microservices project. Generated with the Moleculer CLI.
Moleculer supports different deployment modes. The figures below represent the deployment and production architectures.
Switching between the architectures is automatically handled by moleculer. To run in dev mode use npm run dev
, for production mode run npm run dc:up
.
Start the project with npm run dev
command.
After starting, open the http://localhost:3000/ URL in your browser.
On the welcome page you can test the generated services via API Gateway and check the nodes & services.
In the terminal, try using Moleculer REPL by running the following commands:
nodes
- List all connected nodes.services
- List all the available services.actions
- List all registered service actions.info
- List node info (e.g., IP, memory usage).call greeter.hello
- Call thegreeter.hello
action.call greeter.welcome --name John
- Call thegreeter.welcome
action with thename
parameter.call products.list
- List the products (call theproducts.list
action).
- api: API Gateway services
- greeter: Sample service with
hello
andwelcome
actions. - products: Sample DB service. To use with MongoDB, set
MONGO_URI
environment variables and install MongoDB adapter withnpm install mongodb
. - inventory: Sample service with a single
channel
handler that uses persistent queues to reliably process the messages.
- db.mixin: Database access mixin for services. Based on moleculer/database
- Moleculer website: https://moleculer.services/
- Moleculer Documentation: https://moleculer.services/docs/0.15/
- Moleculer API Gateway: https://moleculer.services/docs/0.15/moleculer-web.html
- Moleculer GraphQL Gateway: https://github.com/moleculerjs/moleculer-apollo-server
- Moleculer Socket.IO Gateway: https://github.com/moleculerjs/moleculer-io
- Moleculer Channels: https://github.com/moleculerjs/moleculer-channels
npm run dev
: Start development mode (load all services locally with hot-reload & REPL)npm run start
: Start production mode (setSERVICES
env variable to load certain services)npm run cli
: Start a CLI and connect to production. Don't forget to set production namespace with--ns
argument in scriptnpm run lint
: Run ESLintnpm run ci
: Run continuous test mode with watchingnpm test
: Run tests & generate coverage reportnpm run dc:up
: Start the stack with Docker Composenpm run dc:down
: Stop the stack with Docker Compose