Versions Compared

Key

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

...

This proposal will introduce an optional set of ids that will provide a unique identifier for messages a producer sends to avoid duplicates.

Some Nuances

 Opt-in

Producer implementations that don't care about idempotency should not need to do anything special.

...

Now I will make the proposal a bit more explicit.

We will add a new API lease_pid which will be used to allocate a unique producer id. The API will have the following format:

Request:

lease_pid_request => topic partition pid expire_ms

...

The intended usage is as follows. The producer would issue a lease_pid request for each partition it wants to send messages to every time it establishes a new connection. When the producer first initializes it would send the pid=-1 which would cause the server to issue it a new pid in the response.

...