Elvin is an event routing service using a publish/subscribe event delivery model. It was originally developed at the Distributed Systems Technology Centre, an Australian Co-operative Research Centre based at the University of Queensland which operated from 1992 until mid-2006.
The Elvin Publish/Subscribe ModelEdit
Elvin is most distinguished from other such systems by its support of a sophisticated content-based subscription system. Elvin clients subscribe to events using a language that resembles C boolean expressions. For example:
Department == "IT" && Percent-Disk-Free <= 10
This expression selects messages that have a field named Department with a string value matching "IT" and a Percent-Disk-Free field with an integer value less than or equal to 10. The Elvin subscription language supports a range of operations for matching numeric and string values, including the use of regular expression matching.
Elvin is oriented around providing a fast, flexible event service that can be federated to form wide-area event notification networks. In order to achieve these goals it does not provide persistence, durability or guaranteed delivery. Elvin can thought of as providing a middle ground between low-level network multicast and higher-level, more complex, event brokers such as JMS.
In 2003, the research group that created Elvin left DSTC to found Mantara software in order to develop commercial applications of Elvin. In November 2006, Mantara announced that it would be ceasing to support Elvin as a standalone commercial product by the end of 2007.
The specifications for the Elvin protocols have been made available at the elvin.org site, and a new implementation of Elvin has subsequently been developed, Avis, an open source (GPL) implementation.
- Elvin has left the building: A publish/subscribe notification service with quenching, 1997, Bill Segall and David Arnold, Proceedings AUUG97, Brisbane Australia, September 1997.
- Content Based Routing with Elvin4, 2000, Bill Segall, David Arnold, Julian Boot, Michael Henderson and Ted Phelps Proceedings AUUG2k, Canberra, Australia, June 2000.
- For an example of an implementation following a similar model, see Siena: Siena: A Wide-Area Event Notification Service Archived 2007-03-31 at the Wayback Machine. Software Engineering Research Laboratory, University of Colorado. Retrieved August 27, 2007.
- See the Elvin Subscription Language reference for more information.
- Although Elvin does not provide hard delivery guarantees, the use of TCP as the usual underlying transport provides some guarantees at the communications layer, and the protocol has mechanisms that allow clients to be notified in the rare event that a message cannot be delivered.