0.4.0-alpha.4.4 • Published 6 years ago

somata v0.4.0-alpha.4.4

Weekly downloads
128
License
MIT
Repository
-
Last release
6 years ago

Somata (the HTTP- & WebSocket-based rewrite)

Quickstart

Install

Clone this branch and install dependencies:

> git clone --single-branch --branch somata-http git://github.com/somata/somata-node somata-http
> cd somata-http
> npm install

Set up DNS to resolve services

Instead of using a registry to locate services, clients now find services with DNS - a service that would have been called examples:hello will now be located at http://hello.examples/. In order to resolve services on a local machine (instead of e.g. Kubernetes which will automatically configure DNS based on the Kubernetes Service name) you will have to manually define the location of each service.

With nginx + simon this is easy enough. Assuming a service located at port :8000 (the default) and a DNS suffix of ".pronto" (as set up with dnsmasq), add a record for the example hello service with simon-says:

> simon-says hello.examples.pronto :8000
Pointing hello.examples.pronto to 127.0.0.1:8000
1) "127.0.0.1:8000"

Run the examples

Run the example hello service:

> DEBUG=somata.* coffee examples/service.coffee
  somata.service Warning: Deprecated service identifier: 'examples:hello' +0ms
  somata.service Service identifier updated to 'hello.examples' +2ms
  somata.service Listening on :8000 +7ms

Run the example hello client using HTTP POST requests:

> SOMATA_REQUEST=post SOMATA_DNS_SUFFIX=pronto coffee examples/client.coffee
[hello_jones] Hello jones
[hello_sam] Hello sam

Options

Change the port a service is bound to with SOMATA_PORT. The default is 8000.

Change the default request method with SOMATA_REQUEST. Options are "post" and "ws" (for WebSockets - experimental).

Change the DNS suffix with SOMATA_DNS_SUFFIX. The default is no suffix – the hello.examples service will be available at http://hello.examples/.

Testing services with Curl

Call a service method by POSTing an object {args: [...]} to http://service_name.suffix/method_name.json. The response will be an object {type: "response", data: ...}:

> curl -X POST -d '{"args": ["Jones"]}' -H 'Content-type: application/json' hello.examples.pronto/sayHello.json
{"type":"response","data":"Hello Jones"}
0.4.0-alpha.4.4

6 years ago

0.4.0-alpha.4.3

6 years ago

0.4.0-alpha.4.2

6 years ago

0.4.0-alpha.4.1

6 years ago

0.4.0-alpha.4

6 years ago

0.4.0-alpha.3

6 years ago

0.4.0-alpha.2

6 years ago

0.4.0-alpha.1

6 years ago

0.4.0-alpha.0

6 years ago

0.3.1

8 years ago

0.3.0

8 years ago

0.2.10

8 years ago

0.2.9

8 years ago

0.2.8

8 years ago

0.2.7

8 years ago

0.2.6

8 years ago

0.2.5

9 years ago

0.2.4

9 years ago

0.2.3

9 years ago

0.2.1

9 years ago

0.2.0

9 years ago

0.1.15

9 years ago

0.1.14

9 years ago

0.1.13

9 years ago

0.1.12

9 years ago

0.1.11

9 years ago

0.1.8

9 years ago

0.1.7

9 years ago

0.1.6

9 years ago

0.1.5

9 years ago

0.1.4

9 years ago

0.1.3

9 years ago

0.1.2

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago

0.0.20

10 years ago

0.0.18

10 years ago

0.0.17

10 years ago

0.0.16

10 years ago

0.0.15

10 years ago

0.0.13

11 years ago

0.0.12

11 years ago

0.0.11

11 years ago

0.0.10

11 years ago

0.0.8

11 years ago

0.0.7

11 years ago