3.2.9 • Published 7 years ago

micromessaging v3.2.9

Weekly downloads
4
License
MIT
Repository
github
Last release
7 years ago

Micromessaging

Build Status

This module has been written for Swanest back-end. It eases the use of messaging between services. We use RabbitMQ as the underlying broker service. This library is using amqplib (0.5.3) as a core dependency but we do use some parameters that are only RabbitMQ related so it might not work with other AMQP 0.9.1 brokers.

Supported version of NodeJS 8+


Installation

yarn add micromessaging npm install micromessaging --save

API

Full API documentation is at: swanest.github.io/micromessaging

Special thanks to TypeDoc that enabled it.

Dependencies

  • RabbitMQ > 3.3.0

Usage

import { Messaging } from 'micromessaging';

// Server
const server = new Messaging('server');
await server.handle('request-name', (message) => {
    // message.body = {how: {are: 'you?'}}
    message.reply({im: 'fine'});
});
await server.connect(); // Connect can be before or after the handlers it doesnt matter.


// Client
const client = new Messaging('client');
await client.connect(); // Connection needs to be established before...
const response = await client.request('server', 'request-name', {how: {are: 'you?'}});
// response = {im: 'fine'}

Notes

v3.0 includes breaking changes and CAN'T be used with another module using an earlier micromessaging version.

About what it does:

  • RPC model (.request / .handle)
  • Event subscription (PUB/SUB) (.emit / .listen)
  • Worker queue tasks (.task / .handle)
  • Election of a master between services that do have the same serviceName (in new Messaging(serviceName[, serviceOptions]))
  • Manage the process quality of service (Qos.ts)
    • The QoS is managed through usage of HeavyEL for event-loop management and the MemoryPressure module to know about memory usage and pressure.
    • What it basically does is to try to keep the process under a certain usage and will stop accepting messages when it reaches a certain threshold to avoid crashes. The reason is that this enables parallelism and it should be properly managed as NodeJS is single threaded.
  • Has knowledge about the status of it's peers (through PeerStatus.ts)

TODO

  • Change the API to expose the strict minimum
3.2.9

7 years ago

3.2.8

7 years ago

3.2.7

7 years ago

3.2.6

7 years ago

3.2.5

7 years ago

3.2.4

8 years ago

3.2.3

8 years ago

3.2.2

8 years ago

3.2.1

8 years ago

3.2.0

8 years ago

3.1.1

8 years ago

3.1.0

8 years ago

3.0.30

8 years ago

3.0.29

8 years ago

3.0.28

8 years ago

3.0.27

8 years ago

3.0.26

8 years ago

3.0.25

8 years ago

3.0.24

8 years ago

3.0.23

8 years ago

3.0.22

9 years ago

3.0.21

9 years ago

3.0.20

9 years ago

3.0.19

9 years ago

3.0.18

9 years ago

3.0.17

9 years ago

3.0.16

9 years ago

3.0.14

9 years ago

3.0.13

9 years ago

3.0.12

9 years ago

3.0.11

9 years ago

3.0.10

9 years ago

3.0.9

9 years ago

3.0.8

9 years ago

3.0.7

9 years ago

3.0.6

9 years ago

3.0.5

9 years ago

3.0.4

9 years ago

3.0.3

9 years ago

3.0.2

9 years ago

3.0.1

9 years ago

3.0.0

9 years ago

2.2.7

9 years ago

2.2.6

9 years ago

2.2.5

9 years ago

2.2.4

9 years ago

2.2.3

9 years ago

2.2.2

9 years ago

2.2.1

9 years ago

2.2.0

9 years ago

2.1.27

9 years ago

2.1.26

9 years ago

2.1.25

9 years ago

2.1.24

9 years ago

2.1.23

9 years ago

2.1.22

9 years ago

2.1.21

9 years ago

2.1.20

9 years ago

2.1.19

9 years ago

2.1.18

9 years ago

2.1.17

9 years ago

2.1.16

9 years ago

2.1.15

9 years ago

2.1.14

9 years ago

2.1.13

9 years ago

2.1.12

9 years ago

2.1.11

9 years ago

2.1.10

9 years ago

2.1.9

9 years ago

2.1.8

9 years ago

2.1.7

9 years ago

2.1.6

10 years ago

2.1.5

10 years ago

2.1.4

10 years ago

2.1.3

10 years ago

2.1.2

10 years ago

2.1.1

10 years ago

2.1.0

10 years ago

2.0.7

10 years ago

2.0.6

10 years ago

2.0.5

10 years ago

2.0.4

10 years ago

2.0.3

10 years ago

2.0.2

10 years ago

2.0.1

10 years ago

2.0.0

10 years ago

1.1.3

10 years ago

1.1.2

10 years ago

1.1.1

10 years ago

1.1.0

10 years ago

1.0.3

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago