Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecations and default-changes in v1.x #2020

Open
15 of 20 tasks
edenhill opened this issue Sep 22, 2018 · 0 comments
Open
15 of 20 tasks

Deprecations and default-changes in v1.x #2020

edenhill opened this issue Sep 22, 2018 · 0 comments

Comments

@edenhill
Copy link
Contributor

edenhill commented Sep 22, 2018

librdkafka v1.0 will be API and ABI compatible with the 0.x release train, but will deprecate a number of legacy APIs and configuration settings that will be removed in v2.0.

APIs and functionality to deprecate:

  • File-based offset storage -> simplies the offset management code
  • Legacy consumer API: rd_kafka_consume_start|stop() -> simplifies internal consumer handling
  • rd_kafka_conf_set_default_topic_config() -> global config fallthru covers this functionality
  • rd_kafka_conf_set_dr_cb() -> rd_kafka_conf_set_dr_msg_cb() is future proof
  • rd_kafka_metadata() -> will be modified in v2.0 to a more generic and future proof interface
  • rd_kafka_set_log_cb|rd_kafka_set_log_level() -> use configuration interface
  • rd_kafka_AlterConfigs() -> rd_kafka_ModifyConfigs() with proper atomic functionality

Configuration settings to deprecate:

  • socket.blocking.max.ms -> no longer needed (on Sparse/on-demand connections #2019 merge)
  • topic.metadata.refresh.fast.cnt -> no longer needed
  • produce.offset.report -> no longer needed
  • max.in.flight.per.connection -> will remain, but max.in.flight.per.partition will be added and max.in.flight will be aliased to it.
  • offset.store.path|sync.interval.ms|method -> only broker commits will be supported
  • reconnect.backoff.jitter.ms -> no longer used, replaced by reconnect.backoff.ms and reconnect.backoff.max.ms.

Other changes:

  • Enforcement of compatible configuration
  • The experimental LIFO queuing strategy (queuing.strategy=lifo) will be removed, and rd_kafka_conf_set_msg_order_cmp() with it. Selective ordering complicates the internal ordering guarantees for idempotent producer.

Default changes:

  • acks -> will be set to all, was 1.
  • broker.version.fallback -> will be set to an ApiVersionRequest supporting version
  • enable.sparse.connections -> will be set to true
  • enable.partition.eof -> will be set to false

Open questions:

  • Can we remove the deprecated string-based configuration properties without breaking the API stability guarantee? -> Probably no, it will break existing applications.

Feedback welcome.

edenhill added a commit that referenced this issue Nov 29, 2018
@edenhill edenhill changed the title Deprecations in v1.0 Deprecations and default-changes in v1.0 Dec 1, 2018
edenhill added a commit that referenced this issue Dec 1, 2018
edenhill added a commit that referenced this issue Dec 3, 2018
edenhill added a commit that referenced this issue Dec 4, 2018
@edenhill edenhill changed the title Deprecations and default-changes in v1.0 Deprecations and default-changes in v1.x Apr 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant