Versions Compared

Key

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

...

  • Transactional guarantees: the streamer should not bypass any transaction mechanisms. Transaction per batch or transaction per entry could be used.
  • Asynchronous API with backpressure control. Avoid blocking threads and/or excessive resource usage on clients and servers.
  • Ordering guarantees: the streamer must guarantee that two objects added with the same key will be processed in the same order they were added by the client. In other words, the streamer can’t reorder items within a given partition. Receiver should not be invoked for item B if preceding item A is not yet processed.
  • At Least Once is a must. Exactly Once is nice to have if technically feasible (probably not)delivery guarantee:
    • Automatic retry of failed batches.
    • If a streamer completes without error, all items are guaranteed to be processed.
  • Partition pinning. Because the receiver usually expects the data to be colocated, we should prevent partitions from changing ownership while the receiver is running.

...