« Content trumps Architecture | Main | Hibernate 3.0 released »

HTTPLR: reliable message delivery over HTTP

HTTPLR is an application protocol for reliable messaging using HTTP. The protocol specifies reliable delivery for upload and download of messages.

It's a REST style protocol - client-server, no URI or content inspection is required, and each item of interest gets its own URL. The reliability is achieved by adding behavourial constraints to HTTP aware software. Probably the most interesting technical aspects are a) that you can push messages around without requiring two servers and, b) that there is a distinction made between the exchange and the message (each gets their own URL).

In Propylon we've had an earlier revision of the message upload protocol running for over a year now and we're happy with how it's working out. Download is something we're working on currently. Formally speaking it's probably an adequate protocol, and practically speaking, it works. The current version is draft-httplr-00. I think it'll go through a few revisions over the next few months, so if you have any comments or would like to implement the spec, feedback is welcome!

February 24, 2005 09:57 PM


Richard Rodger
(February 25, 2005 01:19 PM #)

Interesting document - this might have some applications for me. Perhaps you'd care to write some entries explaining some of the philosophy behind the design decisions?

Bill de hOra
(February 26, 2005 10:47 AM #)

" Perhaps you'd care to write some entries explaining some of the philosophy behind the design decisions?"

Richard, I've had some good feedback so far and will be writing up a rationale here before draft-01. One thing I really want to explain is the use of PUT/DELETE.

(March 8, 2005 07:21 AM #)

Wonderful timing! I was just now puzzling over 3-phase commit in http.

Section 8.3 is a bit confusing. It's not clear when 410's are required, versus 405's. The examples only increased confusion I'm afraid. Maybe some state diagrams? :)