seanohalpin / rabbitmq-streams forked from squaremo/rabbitmq-streams

Data streams management using RabbitMQ.

This URL has Read+Write access

Michael Bridgen (author)
Wed Sep 09 08:53:04 -0700 2009
commit  8b60a13f549aebf658a359cf68972eb4836644d3
tree    de8b7186a074977325cb0fbc3e5b09683e5281eb
parent  0ef76f559daf5a804abb0de525f6e523e6c262bd parent  420e40fbcb25f4996ea0d34da359a003cab9bd73
name age message
file .hgignore Tue Aug 25 07:51:10 -0700 2009 Merge bug21474; its still not 100% finished but... [Alexander Schmolck]
file Makefile Loading commit data...
file Makefile.install
file Makefile.test
file README.PACKAGING
file README.md
directory bin/
directory doc/
directory etc/ Mon Sep 07 10:11:24 -0700 2009 Started work on an init.d script, based on the ... [Alexander Schmolck]
directory examples/ Fri Jul 31 08:28:47 -0700 2009 Partially tested email configuration [timclark]
directory harness/
directory orchestrator/
directory packaging/
directory plugins/
directory sbin/ Tue Aug 25 08:10:21 -0700 2009 Merged from bug21474 try 2 --HG-- rename : orc... [timclark]
directory share/ Thu Jul 23 06:02:07 -0700 2009 Transform script for use in xslt integration te... [timclark]
directory sites/ Tue Sep 08 07:31:35 -0700 2009 Cleanup - remove IDE generated headers. [timclark]
file start-feedshub-rabbit.sh Sat May 09 06:54:00 -0700 2009 Use proper {} instead of () for sh var expansion [Tony Garnock-Jones]
directory test/
README.md

What is this?

"RabbitMQ Streams" is our name for the open source project developed with the BBC. It is a data streams management system. Have a look at Whence Streams for more of an explanation and some background, and the roadmap for where it's at and where it's going.

The basic logical building blocks are Sources and Destinations of data and Pipelines. The latter are composed of PipelineComponents which can route (e.g. based on regexp matches on Atom feed entries), merge and transform the data in arbitrary ways.

Data arrive at sources, and leave from destinations, via Gateways, which talk various protocols to the outside world.

Gateways as well as pipeline components (jointly referred to as Plugins) can currently be written in Java and Python, and require little boilerplate (see e.g. regexp_replace.py Support for other languages can be added straightforwardly by creating a Harness; plugins are essentially just programs following a simple protocol, with the harness taking care of much of the detail.

There's an API (over HTTP) for listing pipelines and starting and stopping them. It'll be expanded to include defining pipelines, as well as declaring sources and destinations, and subscribing pipelines to them (and them to pipelines).

See the wiki for information about using and hacking on Streams.