FlameStream is a distributed stream processing model, that has the following properties:
- Pure streaming: records are processed one at a time
- Deterministic: results are determined only by input and not changed between independent runs
- Consistency: model provides for exactly-once semantics
The distributed implementation of FlameStream model is written in Java and uses the Akka Actors framework for messaging.
The implementation is based on the following grounds:
- Determinism is achieved via strong ordering
- Idempotence via determinism
- Exactly-once via idempotence
Unlike common models, FlameStream has reduced set of operations: windowed grouping and stateless map, which are enough to implement any stateful pipelines. Such limitation allows achieving strong ordering with low overhead using the lightweight optimistic techniques.