- Upgrade to lager v3.9.2 (works on OTP 24)
- Add support for poll_idle_ms topic setting.
- Upgrade to librdkafka v1.6.1
- Add more supported configs from librdkafka.
- Fix OTP 23 build
- Fix for silviucpp#21
- Fix memory access
- Redesign the callback system. Instead using one thread per consumer/producer that polls for new events, now it's using one single thread for all producers and consumers that's notified when new events are available.
- Breaking backward compatibility: change the
create_consumer_group
function parameters, and consumer configs. More details below.
In version 1.x each consumer group could handle a list of topics but it couldn't specify a callback for each topic. Now the callbacks settings moved into the topics list as follow:
% v1.x
{client_consumer_id, [
{type, consumer},
{group_id, <<"erlkaf_consumer">>},
{callback_module, test_consumer},
{callback_args, []},
{topics, [<<"topic1">>, <<"topic2">>]},
{topic_options, [
{auto_offset_reset, smallest}
]},
{client_options, []}
]}
% becomes in v2.0.0 or newer:
{client_consumer_id, [
{type, consumer},
{group_id, <<"erlkaf_consumer">>},
{topics, [
{<<"topic1">>, [
{callback_module, module_topic1},
{callback_args, []}
]},
{<<"topic2">>, [
{callback_module, module_topic2},
{callback_args, []}
]}
]},
{topic_options, [
{auto_offset_reset, smallest}
]},
{client_options, []}
]}
% Please notice that `callback_module` and `callback_args` were moved into the `topics` which
% now it's a proplist where key is the topic name and value is the list of settings for the topic.
- Based on librdkafka v1.3.0
- Add new configs
isolation_level
andplugin_library_paths
- Set message_timeout_ms to 0
- Implemented exponential backoff retry policy on consumer
- Fix hex package
- Add zstd into the deps list
- Remove deprecated config
produce.offset.report
- Based on librdkafka v1.0.1
- Removed configs:
queuing_strategy
,offset_store_method
,reconnect_backoff_jitter_ms
- Added new configs:
reconnect_backoff_ms
,reconnect_backoff_max_ms
,max_poll_interval_ms
,enable_idempotence
,enable_gapless_guarantee
get_stats
decodes json to maps instead of proplists
- Fixed memory leaks on the consumer
- Fixed a segmentation fault caused when init handler is throwing exception on consumer
- Refactoring the entire consumer part
- Add support for headers (requires broker version 0.11.0.0 or later)
- Code cleanup
- Add support for dispatch_mode topic setting.
- Based on librdkafka v0.11.6
- Add support for Trevis CI
- Remove plists from deps
- Available via HEX
- Fix crash when stopping erlkaf while using consumers
- Update esq dependency
- Add missing app dependency
- Based on librdkafka v0.11.5
- Add support for the new broker configs: ssl_curves_list, ssl_sigalgs_list, ssl_keystore_location, ssl_keystore_password, fetch_max_bytes
- Add support for the new topic configs: queuing_strategy, compression_level, partitioner
- Fix build process on OSX High Sierra
- Upgrade deps to work on OTP 21 (thanks to Tomislav Trajakovic)
- Initial implementation (both producer and consumer) supporting most of the features available in librdkafka.
- Based on librdkafka v0.11.3
- Tested on Mac OSX, Ubuntu 14.04 LTS, Ubuntu 16.04 LTS