What's Changed
- Added support for Changelog topics
- Changelog topics provide fault tolerance capabilities to state stores.
Each state store now has a corresponding changelog topic to keep track of the state updates in Kafka.
- Changelog topics are enabled by default and can be disabled.
- See more about changelog topics in [the docs](https://quix.io/docs/quix-streams/v2-0-latest/stateful-processing.html#fault-tolerance-recovery)
- `Application.run()` class now verifies that topics exist before starting the application.
If topics don't exist, the `Application` instance will try to create them automatically if `auto_create_topics` is set to `True` (default).
The topic parameters can also be specified, see more in [the docs](https://quix.io/docs/quix-streams/v2-0-latest/api-reference/application.html#applicationtopic)
- This is the first non-alpha release of Quix Streams v2. It can now be installed from `pip` without the `--pre` flag.
Breaking changes
- The partition assignment strategy is now always set to `cooperative-sticky` and cannot be configured anymore because the consumer relies on the `incremental_assign()` API for recovery.
Previously, the assignment strategy was set to `range` by default, and `range` is a non-cooperative strategy.
Since cooperative and non-cooperative (eager) strategies must not be mixed, all consumers in the group must first leave the group, and then join it again after upgrading the application to this version.
**Full Changelog**: https://github.com/quixio/quix-streams/compare/v2.2.1a...v2.3.1