# AP4R, Asynchronous Processing for Ruby, initial release

**URL:** <https://www.ruby-forum.com/t/ap4r-asynchronous-processing-for-ruby-initial-release/67218>\
**Category:** Ruby\
**Created:** [September 1, 2006, 12:27pm UTC](https://www.ruby-forum.com/t/ap4r-asynchronous-processing-for-ruby-initial-release/67218 "2006-09-01T12:27:54Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [September 1, 2006, 12:27pm UTC](https://www.ruby-forum.com/t/ap4r-asynchronous-processing-for-ruby-initial-release/67218/1 "2006-09-01T12:27:54Z")

</div>

We are pleased to announce the FIRST release of AP4R.

```
http://rubyforge.org/projects/ap4r/

```

== DESCRIPTION

AP4R, Asynchronous Processing for Ruby, is the implementation of  
reliable asynchronous message processing. It provides message  
queuing, and message dispatching.

Using asynchronous processing, we can cut down turn-around-time  
of web applications by queuing, or can utilize more machine power  
by load-balancing.

Also AP4R nicely ties with your Ruby on Rails applications.  
See HelloWorld sample application from rubyforge.

== INSTALLATION

sudo gem install ap4r

== FEATURES

- Business logics can be implemented as simple Web applications,  
or ruby code, whether it’s called asynchronously or synchronously.

- Asynchronous messaging are reliable by RDBMS persistence (now  
MySQL only) or file persistence.

- Load balancing over multiple AP4R processes on single/multiple servers  
is supported.

- Asynchronous processes are called via various protocols, such  
as XML-RPC, SOAP, HTTP PUT, and more. (now implemented just as  
XML-RPC)

== CHANGES

This is the first release!

== ACKNOWLEDGMENT

K.K. and S.S. are on the payroll of Future System Consulting Corp.  
Japan.

–  
Kato, Kiwamu removed\_email\_address@domain.invalid  
Shinohara, Shunichi removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [September 1, 2006, 2:10pm UTC](https://www.ruby-forum.com/t/ap4r-asynchronous-processing-for-ruby-initial-release/67218/2 "2006-09-01T14:10:11Z")

</div>

On Sep 1, 2006, at 2:21 AM, [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> queuing, and message dispatching.  
> Interesting. And the timing is nice, I’m just seriously looking into  
> this sort of thing now. How does your project relate to \<http://  
> [rubyforge.org/projects/reliable-msg/](http://rubyforge.org/projects/reliable-msg/)\>?

Cheers,  
Bob

* * *

Bob H. – blogs at \<[http://www.recursive.ca/](http://www.recursive.ca/)  
hutch/\>  
Recursive Design Inc. – [http://www.recursive.ca/](http://www.recursive.ca/)  
Raconteur – [http://www.raconteur.info/](http://www.raconteur.info/)  
xampl for Ruby – [http://rubyforge.org/projects/xampl/](http://rubyforge.org/projects/xampl/)

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [September 1, 2006, 4:14pm UTC](https://www.ruby-forum.com/t/ap4r-asynchronous-processing-for-ruby-initial-release/67218/3 "2006-09-01T16:14:28Z")

</div>

On 9/1/06, Bob H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Interesting. And the timing is nice, I’m just seriously looking into  
> this sort of thing now. How does your project relate to \<http://  
> [rubyforge.org/projects/reliable-msg/](http://rubyforge.org/projects/reliable-msg/)\>?

It’s built on top of reliable-msg.

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [September 1, 2006, 5:22pm UTC](https://www.ruby-forum.com/t/ap4r-asynchronous-processing-for-ruby-initial-release/67218/4 "2006-09-01T17:22:45Z")

</div>

removed\_email\_address@domain.invalid wrote:

> We are pleased to announce the FIRST release of AP4R.
> 
> ```
> http://rubyforge.org/projects/ap4r/
> 
> ```

Neat. Are there any online docs?

–  
James B.

[http://www.ruby-doc.org](http://www.ruby-doc.org) - Ruby Help & Documentation  
[Ruby Code & Style](http://www.artima.com/rubycs/) - The Journal By & For Rubyists  
[http://www.rubystuff.com](http://www.rubystuff.com) - The Ruby Store for Ruby Stuff  
[http://www.jamesbritt.com](http://www.jamesbritt.com) - Playing with Better Toys

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [September 4, 2006, 2:44pm UTC](https://www.ruby-forum.com/t/ap4r-asynchronous-processing-for-ruby-initial-release/67218/5 "2006-09-04T14:44:04Z")

</div>

> > Interesting. And the timing is nice, I’m just seriously looking into  
> > this sort of thing now. How does your project relate to \<http://  
> > [rubyforge.org/projects/reliable-msg/](http://rubyforge.org/projects/reliable-msg/)\>?
> 
> It’s built on top of reliable-msg.

Yes, it’s completely owe message persistence to reliable-msg.  
Main additional function of first version is dispatching messages  
to Web server via XML-RPC.  
So, we can build system with async processing just writing web  
application e.g. with rails.

Another function is load-balancing amoung reliable-msg servers.  
But its rather naive implementation, and doesn’t work unless you  
modify reliable-msg code a little.

Thank you for your interest!

Shinohara, Shunichi
