Hello,

I'm using Kafka 0.8.2.1 (in a Scala/Java project) and trying to find out how to atomically write n messages (message batch) to a single topic partition. Is there any client API that gives such a guarantee? I couldn't find a clear answer reading the documentation, API docs (of the old and new producer) and mailing list archives - sorry if I missed something obvious.

With the new org.apache.kafka.clients.producer.KafkaProducer, the send method has only a single ProducerRecord parameter and record accumulation and batch-sending of records is an implementation detail (which can be controlled to some extend by the batch.size configuration setting etc but not by user-defined message batches). So it seems that the new producer cannot be used for that. Are there any plans to support that in future versions?

Only the old kafka.producer.Producer allows me to pass a user-defined KeyedMessage batch to its send method. What are the semantics of this method when producer.type=sync and all KeyedMessages for a given send call are targeted at the same topic partition? Are these messages being written atomically to the partition?

Are there other options to achieve atomic writes of user-defined message batches (except making the batch a single Kafka message)?

Thanks for any hints!

Regards,
Martin

Reply via email to