@betit/orion
v0.1.34
Published
Pluggable microservice framework
Downloads
255
Readme
Orion
Orion is a pluggable framework for microservices.
Following "batteries included but removable" design philosophy. Providing sane default implementations, but everything is swappable. Comes with built in support for various transports and codecs.
Features
- Async communication: event driven architecture (pub/sub)
- Sync communication: request-response transport layer
- RPC: clean and simple interface to build services
Components
- Transport: provides an interface for sync request/response communication
- Codec: used for encoding and decoding messages before transporting across the wire
- Service: provides an interface to name your service and register request handlers
- Client: provides an interface to make requests to services
Built-in components
- Transports: NATS (default)
- Codecs: JSON (default), MessagePack
Example
Service:
const orion = require('@betit/orion');
const service = new orion.Service('calc');
service.handle('add', (req, reply) => {
reply(null, parseInt(req.params.a) + parseInt(req.params.b));
});
service.listen(() => {
console.log(`Service started: ${service}`);
});
Client:
const orion = require('@betit/orion');
const client = new orion.Client({ service: 'calc' });
client.call('add', { a: 3, b: 2 }, (err, res) => {
console.log(err, res);
client.close();
});
Check out the examples folder for more examples.
Development
$ docker run -p 4222:4222 -p 8222:8222 -d nats
$ npm install
$ npm test