A boilerplate for developing scalable microservices using RabbitMQ (amqp) and Protocol Buffers (protobufjs) with Node.js. featuring:
- Node.js Async/Await interface
- Protocol Buffers
- RabbitMQ
- RPC Concept
- Eslint
- PM2 Cluster Mode
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
- A running RabbitMQ instance on localhost on standard port (5672). In case you use a different host, port or credentials, connections settings would require adjusting.
- Node (> v8.9.0)
- Globally installed yarn (
npm install -g yarn
) - Globally installed pm2 (
npm install -g pm2
)
Clone repository into your local machine
git clone https://github.com/firiz/colony.git
Change directory to colony
cd colony
Install dependencies
yarn
Run services
npm start
At this point you should be able to monitor your services via pm2
pm2 ls
Or see services logs
pm2 logs
Also you can open RabbitMQ management dashboard to review your queues status
http://127.0.0.1:15672
Will be added soon, but you can explore:
- Jest - Delightful JavaScript Testing
Will be added soon, but you can explore:
- PM2 - Advanced, production process manager for Node.js.
- Docker - Build, Manage and Secure Your Apps Anywhere. Your Way.
- Node.js - Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
- RabbitMQ - RabbitMQ is the most widely deployed open source message broker.
- Protocol Buffers - Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
- Farshad Sahafzadeh - Github Page
See also the list of contributors who participated in this project.
This project is licensed under the GNU GENERAL PUBLIC LICENSE - see the LICENSE file for details