Sha256: 9866c1e366c4496adc6683eeebc57ad99487b50e0ef2880d9b92d7a93d9bf592

Contents?: true

Size: 1.42 KB

Versions: 3

Compression:

Stored size: 1.42 KB

Contents

h1. Abstracting Services in Ruby

* Kurt Stephens
* 2010/08/19
* Slides -- "http://kurtstephens.com/pub/abstracting_services_in_ruby/asir.slides/":http://kurtstephens.com/pub/abstracting_services_in_ruby/asir.slides/
* Code -- "http://kurtstephens.com/pub/abstracting_services_in_ruby/":http://kurtstephens.com/pub/abstracting_services_in_ruby/
* Git -- "http://github.com/kstephens/abstractiing_services_in_ruby":http://github.com/kstephens/abstractiing_services_in_ruby

h2. Objectives

* Simplify service/client definitions.
* Anticipate new encoding, delivery and security requirements.
* Separate request/response encoding and delivery for composition.
* Elide deployment decisions.
* Integrate diagnostics and logging.
* Simplify integration testing.

h3. Features

* One-way and two-way requests as Module or instance methods.
* Request support:
** Delayed requests.
** Request meta-data: UUID, Timestamp.
* Support for multiple request/response transports:
** File.
** Named Pipe.
** TCP.
** HTTP under WEBrick or as Rack application.
** Beanstalkd.
** ZeroMQ.
** Resque.
** Buffered transports.
** Broadcast transports.
** Fallback transports.
** Time-decaying retry and polling logic.
* Support for multiple encodings:
** Marshal.
** XML.
** JSON.
** YAML.
** Base64.
** ZLib.
** Chained encodings.
** Signed payloads.

h2. Platform support

* CRuby 1.8.7
* CRuby 1.9.3-head
* CRuby 2.0-head
* JRuby 1.6.x (with JRUBY_OPTS=--1.9) IN-PROGRESS

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
asir-1.0.5 README.textile
asir-1.0.4 README.textile
asir-1.0.1 README.textile