ARIES-1882 - More scalable API
12 files changed
tree: cc8cf99b00548739bbe1a4eaf6c5b3cc9deb6713
- org.apache.aries.events.api/
- org.apache.aries.events.memory/
- org.apache.aries.events.mongo/
- .gitignore
- LICENSE
- pom.xml
- Readme.md
Readme.md
Apache Aries Journaled events
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