- OAuthbearer support (contribution from macasado86 : #74)
- Add default config based on target object (contribution from gabriel-araujjo : #76)
[- Bug fixing: brew install causing undesired updates and crashing other Homebrew pkgs (#68)
- Update travis config
- Bug fixing: https://github.com/silviucpp/erlkaf/pull/71]()
- Bug fixing: avoid assigning partitions if consumer is not running (#60)
- Migrate from lager to erlang logger.
- Important bug fixing causing crashes in rare situations because of undefined functions.
- Proper fix for building with mix (fogfish/esq#20 (comment))
- Update esq (#55)
- Fix for kafka tombstones messages (#51)
- Add support for message timestamp (#41)
- Update to librdkafka v1.9.2
- Bug fixing into cleanup consumer queue in consumer group (#52)
- Fix build with OTP 25
- Fix create_consumer_group spec (#45)
- Improve build scripts
- Fix compilation error under elixir 1.13
- Fix crash when running under a debug compiled VM (#40)
- Fix for message headers into delivery reports (#37)
- On Mac OS use [email protected]
- Bug fixing #31
- Add API to get metadata from Kafka broker with dirty IO bound nif
- Fix for processing messages that takes longer than max_poll_interval_ms
- 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 #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