- [Breaking] Remove Ruby 3.1 support according to EOL.
- [Feature] Support Swarm mode on MacOS.
- [Enhancement] Support past
dispatch_at
times withjitter: 0
in the OSS Karafka to support ActiveJob continuation. - [Enhancement] Use direct topic dispatches when
dispatch_at
is used for past times to bypass Scheduled Messages flow. - [Enhancement] Support immediate error raising with
auto.offset.reset
set toerror
. - [Enhancement] Don't create not needed dirs in the non-Rails setup template.
- [Enhancement] Improve printing of TTIN to separate threads.
- [Enhancement] Support transactional ID resource in the Admin ACL management.
- [Enhancement] Move post-forceful shutdown termination wait value to a config.
- [Enhancement] Include consumer group, subscription group and other details in error logs for key error locations.
- [Enhancement] Inherit from
ActiveJob::QueueAdapters::AbstractAdapter
when possible for ActiveJob base class. - [Enhancement] Disable Nagle algorithm by default for improved network performance.
- [Enhancement] Optimize the messages buffer array memory allocation pattern.
- [Maintenance] Add basic direct DD integration spec via DD gem karafka monitoring feature.
- [Maintenance] Add integration specs for WaterDrop connection pool usage from within consumers.
- [Refactoring] Comprehensive Admin module refactoring: Extract topic operations into Admin::Topics class and consumer group operations into Admin::ConsumerGroups class with proper inheritance hierarchy, cross-class method usage optimization, and constants moved to appropriate locations where they are actually used.
- [Refactoring] Move routing-related contracts from
Karafka::Contracts::
toKarafka::Routing::Contracts::
namespace and reorganize error message structure in YAML files underrouting:
scope for better code organization and logical grouping. - [Refactoring] Move config-related contracts from
Karafka::Contracts::Config
toKarafka::Setup::Contracts::Config
namespace and reorganize error message structure in YAML files undersetup:
scope for better code organization and logical grouping. - [Refactoring] Move CLI server contracts from
Karafka::Contracts::ServerCliOptions
toKarafka::Cli::Contracts::Server
namespace and reorganize error message structure in YAML files undercli:
scope for improved naming consistency and logical grouping. - [Refactoring] Replace execution mode symbol-based checks with dedicated
ExecutionMode
class providing cleaner API with query methods (#swarm?
,#embedded?
) and state change methods (#swarm!
,#embedded!
) for improved type safety and code clarity. - [Refactoring] Replace connection client mode symbol-based checks with dedicated
Connection::Mode
class providing cleaner API with query methods (#subscribe?
,#assign?
) and state change methods (#subscribe!
,#assign!
) for improved code clarity. - [Fix] Improve same timestamp dispatch in scheduled messages on Ruby 3.2.
- [Fix] Fix incorrect (6 seconds vs 60 seconds) reset of connections on non-recoverable errors.
- [Fix] Introduce mutex-safe and thread-safe
#inspect
where needed. - [Fix] Fix too loose requirement of Ruby
3.0
when it was3.1
via transitive dependencies. - [Fix] Fix Pro Cleaner Messages compatibility with external libraries that prepend modules to
#each
method (e.g., DataDog tracing). - [Fix] SG exclusion in swarm triggers a contract validation error.
- [Change] Require
waterdrop
>=
2.8.10
to support new features. - [Change] Require
karafka-rdkafka
>=
0.22.0
to support new features and require SSL-bug free version. - [Change] Remove no longer needed
cooperative.sticky
rebalance patch. - [Change] Normalize how libs and deps are required (no functional change for the end user)
- [Change] Remove Ruby
3.1
specs according to the EOL schedule.