0.4.0-alpha.4.4 • Published 5 years ago

somata v0.4.0-alpha.4.4

Weekly downloads
128
License
MIT
Repository
-
Last release
5 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

5 years ago

0.4.0-alpha.4.3

5 years ago

0.4.0-alpha.4.2

5 years ago

0.4.0-alpha.4.1

5 years ago

0.4.0-alpha.4

5 years ago

0.4.0-alpha.3

5 years ago

0.4.0-alpha.2

5 years ago

0.4.0-alpha.1

5 years ago

0.4.0-alpha.0

5 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.10

7 years ago

0.2.9

7 years ago

0.2.8

7 years ago

0.2.7

7 years ago

0.2.6

7 years ago

0.2.5

7 years ago

0.2.4

7 years ago

0.2.3

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.15

7 years ago

0.1.14

7 years ago

0.1.13

8 years ago

0.1.12

8 years ago

0.1.11

8 years ago

0.1.8

8 years ago

0.1.7

8 years ago

0.1.6

8 years ago

0.1.5

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.0.20

8 years ago

0.0.18

9 years ago

0.0.17

9 years ago

0.0.16

9 years ago

0.0.15

9 years ago

0.0.13

9 years ago

0.0.12

10 years ago

0.0.11

10 years ago

0.0.10

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago