Sorry, I wasn't entirely clear. When I said that I'm guessing it's asynchronous, I was referring to the complete transaction from receive in Kinesis to successful processing in fluentd.
The connection is buffered, so the log message returning doesn't necessarily mean it has been transmitted yet. And even if you called flush after each log, you would still get no feedback on when the 'transaction committed' so to speak on the fluentd side, which is fine for application logging but not for building a reliable data stream.
I know the Kinesis output plugin was built by the AWS Kinesis team, so I spoke to our AWS Solution Architect to pass along this suggestion directly to them. I'll let you know if I hear anything back. They have been working hard to make Kinesis play nicely with more and more systems lately, so here's to hoping (the fluentd plugin is quite recent, and they released an ElasticSearch connector recently too).
Amazon reINVENT is coming up mid-November, so there are bound to be plenty of announcements about new capabilities. Hopefully, that includes some good news about Kinesis and Fluentd as well.