< Consume: * - rdkafka private pointer: DO NOT MODIFY * - dr_msg_cb: * msg_opaque from produce() call
< Non-zero for error signaling.
< Depends on the value of \c err : * - \c err==0: Optional message key
< Depends on the value of \c err : * - \c err==0: Optional message key length
< Depends on the value of \c err : * - \c err==0: Message payload length * - \c err!=0: Error string length
< Consume: * - Message offset (or offset for error * if \c err!=0 if applicable). * - dr_msg_cb: * Message offset assigned by broker. * If \c produce.offset.report is set then * each message will have this field set, * otherwise only the last message in * each produced internal batch will * have this field set, otherwise 0.
< Partition
< Producer: original message payload. * Consumer: Depends on the value of \c err : * - \c err==0: Message payload. * - \c err!=0: Error string
< Topic
@brief A Kafka message as returned by the \c rd_kafka_consume*() family of functions as well as provided to the Producer \c dr_msg_cb().
For the consumer this object has two purposes: - provide the application with a consumed message. (\c err == 0) - report per-topic+partition consumer errors (\c err != 0)
The application must check \c err to decide what action to take.
When the application is finished with a message it must call rd_kafka_message_destroy() unless otherwise noted.