Merge pull request #20 from cschneider/master

Build badge
tree: c6ea9c21f4b564646ec75364fbcb37db0994d426
  1. org.apache.aries.events.api/
  2. org.apache.aries.events.kafka/
  3. org.apache.aries.events.memory/
  4. org.apache.aries.events.mongo/
  5. .gitignore
  6. .travis.yml
  7. LICENSE
  8. pom.xml
  9. Readme.md
Readme.md

Apache Aries Journaled events

Jenkins: Build Status Travis: Travis Build Status

This subproject provides an API (possibly as spec) and backends for journaled streams of events. These extend the publish/subscribe model with means to start consume from an point in the stored event stream history.

Goals

  • Provide traditional publish / subscribe semantics
  • Allow consuming a stream from any point in the history (given it is not yet evicted)

Non goals (to be discussed)

  • No coverage of extreme scaling like Apache Kafka. So no sharding support in the API (like partitions).

Requirements

  • Messages sent to a topic must be journaled and must be available to all consumers
  • Consumers must be able to start consuming messages from any point in the history that is still available
  • If a consumer specifies a position that is not available anymore then it must start with the oldest message
  • Each consumer must receive messages in the same order they were sent
  • The journal of each topic may evict messages that are older than a certain retention time