Sha256: 24ba89f3072673a861204204e75ca2099344e747baede91d1a6cdae44dd03d2f

Contents?: true

Size: 1.71 KB

Versions: 5

Compression:

Stored size: 1.71 KB

Contents

h1. Abstracting Services in Ruby

* Kurt Stephens
* 2012/12/11
* 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
* Status -- "!https://travis-ci.org/kstephens/abstracting_services_in_ruby.png!":https://travis-ci.org/kstephens/abstracting_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. (gem asir_beanstalk)
** ZeroMQ. (gem asir_zmq)
** Resque. (gem asir_resque)
** Buffered transports.
** Broadcast transports.
** Fallback transports.
** Database transports (e.g.: gem asir_activerecord)
** Time-decaying retry and polling logic.
* Support for multiple encodings:
** Marshal.
** XML. (gem asir_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
* Rubinius 1.8 and 1.9 modes.
* JRuby 1.6.x (with JRUBY_OPTS=--1.9) IN-PROGRESS

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
asir-1.2.0 README.textile
asir-1.1.12 README.textile
asir-1.1.11 README.textile
asir-1.1.10 README.textile
asir-1.1.9 README.textile