Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

What are the "public interfaces" of the project?

 

All of the following are public interfaces that people build around:

...

  • org/apache/kafka/common/serialization

  • org/apache/kafka/common

  • org/apache/kafka/common/errors

  • org/apache/kafka/clients/producer

  • org/apache/kafka/clients/consumer (eventually, once stable)

...

  • DataStream and DataSet API, including classes related to that, such as StreamExecutionEnvironment
  • Classes marked with the @Public annotation
  • On-disk binary formats, such as checkpoints/savepoints
  • User-facing scripts/command-line tools, i.e. bin/flink, Yarn scripts, Mesos scripts
  • Configuration settings
  • Exposed monitoring information

 

...

Not all compatibility commitments are the same. We need to spend significantly more time on log format and protocol public APIs as these can break code in lots of clients, cause downtime releases, etc. Public apis are next as they for users. They cause people to rebuild code and lead to compatibility issues in large multi-dependency projects (which end up requiring multiple incompatible versions). Configuration, monitoring, and command line tools can be faster and looser — changes here will break monitoring dashboards and require a bit of care during upgrades but aren't a huge burden.

...

FLIPComment
LINK-TO-FLIP (including number and name)