0.2.0 • Published 4 years ago

cervical-spine v0.2.0

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

Cervical Spine

A seamless port from Spinal broker architecture to broker-less DNS-based microservice architecture

This library is used as an intention to remove broker from the system and use HTTP call to DNS-based services instead. Common use-case is Docker Swarm and Kubernetes.

Just remove spinal and install cervical-spine instead.

npm install cervical-spine

Then, replace each require('spinal') to require('cervical-spine').

How it works

Cervical Spine has same API calls with Spinal. For example, when you call user.get with an argument {"id":"1"} it will send a HTTP POST request to http://user:7557/ with data {"name":"get","data":{"id":1}}.

You can also specify host prefix and suffix by assigning env variable SPINAL_HOSTNAME_PREFIX and SPINAL_HOSTNAME_SUFFIX. Alternatively passing an option hostname_prefix and hostname_prefix when initializing a spinal node. For example, having SPINAL_HOSTNAME_PREFIX=production- SPINAL_HOSTNAME_SUFFIX=-service will make a call to http://production-user-service:7557/

Caching still works by passing redis options at node initialization instead of broker in Spinal.

Unlike broker-based approach, this approach introduce new challenge, that is local development. The port would collide if more than one service is run at the same time. Port map is introduced to solve the problem. Simply specify option port_map while initializing a node like this:

  spinal = new Spinal('spinal://127.0.0.1:7557', {
    namespace: 'nock_node',
    port_map: {
      nock_node: 7557,
      bunny: 7658,
    }
  })

When running with NODE_ENV=development, port map will be used. Each service will create a HTTP server using thier port assigned in port map without colliding. Alternatively, an env variable of SPINAL_PORT_MAP can also be used (encoded in JSON format).

0.2.0

4 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

6 years ago

0.1.0

6 years ago

0.0.11

7 years ago

0.0.10

7 years ago

0.0.9

7 years ago

0.0.8

7 years ago

0.0.7

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago