Gilmour

Gilmour is a framework for writing micro-services that exchange data over non-http transports. Currently the supported backend is Redis PubSub. Redis pubsub channels are used like "routes". The DSL provided is similar to Sinatra.

Protocol

Gilmour uses it's own simple protocol to send request and response "headers". The structure of the payload is a simple JSON as shown below:

{
  data: The actual payload,
  sender: The origin of the request (unique for each request),
  code: The respoonse code if this is a response
}

The sender field actually represents a unique sender key. Any reponse that is to be sent to the request is sent on the "reservered" topic response.<sender> on the same exchange.

Usage Examples

See the examples directory for examples of usage

Specs

To run the specs, set REDIS_HOST (default is localhost) and REDIS_PORT (default is 6379) to point to your rabbitmq or redis server. Then, from within the test directory, run rspec spec/*