https://github.com/icebob/microservices-benchmark
Benchmark of microservices frameworks for NodeJS
https://github.com/icebob/microservices-benchmark
benchmark microservice microservices performance
Last synced: 11 months ago
JSON representation
Benchmark of microservices frameworks for NodeJS
- Host: GitHub
- URL: https://github.com/icebob/microservices-benchmark
- Owner: icebob
- Created: 2017-01-31T18:04:05.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2019-04-03T16:03:18.000Z (almost 7 years ago)
- Last Synced: 2025-04-24T04:17:33.787Z (11 months ago)
- Topics: benchmark, microservice, microservices, performance
- Language: JavaScript
- Size: 83 KB
- Stars: 40
- Watchers: 4
- Forks: 12
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# microservices-benchmark
Benchmark of microservices frameworks for NodeJS.
## Frameworks in benchmark
| Package | Version |
| ------- | ----- |
| [Seneca](https://github.com/senecajs/seneca) | 3.3.0 |
| [Hemera](https://github.com/hemerajs/hemera) | 5.8.6 |
| [Nanoservices](https://github.com/SuperID/nanoservices) | 0.0.11 |
| [Moleculer](https://github.com/ice-services/moleculer) | 0.13.0 |
## Test runner computer
```
Windows_NT 6.1.7601 x64
Node.JS: 8.11.0
V8: 6.2.414.50
Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz × 8
```
## Local (in-memory) requests
### Result
```
Suite: Call local actions
√ Moleculer* 1,713,579 rps
√ Nanoservices* 90,510 rps
√ Seneca* 13,252 rps
Moleculer* 0% (1,713,579 rps) (avg: 583ns)
Nanoservices* -94.72% (90,510 rps) (avg: 11μs)
Seneca* -99.23% (13,252 rps) (avg: 75μs)
```
[](http://cloud.highcharts.com/show/utideti)
## Remote (via transporter) requests
### Result
```
Suite: Call remote actions
√ Moleculer* 10,445 rps
√ Hemera* 6,655 rps
√ Cote* 15,442 rps
√ Seneca* 2,947 rps
Moleculer* -32.36% (10,445 rps) (avg: 95μs)
Hemera* -56.9% (6,655 rps) (avg: 150μs)
Cote* 0% (15,442 rps) (avg: 64μs)
Seneca* -80.91% (2,947 rps) (avg: 339μs)
```
[](http://cloud.highcharts.com/show/abyfite)
## Run benchmark
Install dependencies
```
$ npm install
```
or
```
$ yarn
```
> For remote test need to install a [NATS](http://nats.io/) server too.
> You may also use Docker container version of this benchmark.
Start nats server (`gnatsd`) and
```
$ npm run bench local
$ npm run bench remote
```
### Docker container version
If you don't want to have unneeded dependencies and software on your local computer,
you may use Docker to set-up "virtual containers" with this benchmark.
#### Prerequisities
You need to have [Docker](https://docs.docker.com/install/) and [docker-compose](https://docs.docker.com/compose/install/) installed.
#### Starting benchmark
Simply run `docker-compose up` command, so:
* NATS server will be set-up
* All dependencies will be installed
* Benchmark results will be visible in your terminal