Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Kafka >> mail # user >> Transactional writing

Copy link to this message
Re: Transactional writing
On Thu, Oct 25, 2012 at 06:19:04PM -0700, Neha Narkhede wrote:
> The closest concept of transaction on the publisher side, that I can
> think of, is using batch of messages in a single call to the
> synchronous producer.
> Precisely, you can configure a Kafka producer to use the "sync" mode
> and batch messages that require transactional guarantees in a
> single send() call. That will ensure that either all the messages in
> the batch are sent or none.

This is an interesting feature -- something I wasn't aware of. Still it
doesn't solve the problem *completely*. As many people realise, it's still
possible for the batch of messages to get into Kafka fine, but the ack from
Kafka to be lost on its way back to the Producer. In that case the Producer
erroneously believes the messages didn't get in, and might re-send them.

You guys *haven't* solved that issue, right? I believe you write about it on
the Kafka site.

> Thanks,
> Neha
> On Thu, Oct 25, 2012 at 2:44 PM, Tom Brown <[EMAIL PROTECTED]> wrote:
> > Is there an accepted, or recommended way to make writes to a Kafka
> > queue idempotent, or within a transaction?
> >
> > I can configure my system such that each queue has exactly one producer.
> >
> > (If there are no accepted/recommended ways, I have a few ideas I would
> > like to propose. I would also be willing to implement them if needed)
> >
> > Thanks in advance!
> >
> > --Tom

Philip O'Toole

Senior Developer
Loggly, Inc.
San Francisco, Calif.

Come join us!