Apache® Kafka® consumers read and process streams of messages. A consumer connects to the broker, and requests the messages available on the stream. Messages cannot be changed once sent by the producer. Although called "records", the records (messages) received by the consumer cannot be written back to the broker as with a database. A consumer may consume messages from multiple streams at once, and determines what happens for each. With Kafka, a consumer receiving a message does not destroy the message. The message is only removed from the stream of messages after a set amount of time or disk space is consumed.

The consumer of message streams choose where to start reading the stream. Typically, a consumer would start from the oldest message available on the stream, continue reading and processing the streams to the newest, and then continue processing new messages as they arrive from producers, indefinitely. Other consumers may start in the middle of a stream. For example, if a consumer read some messages and then crashed, it could then recover with the last message processed. Other consumers may only want to begin processing the newly arrived messages to the stream, completely ignoring any messages already in the stream. There can be many combinations depending on the needs of the application.

Consumer applications may also act as producer applications. For example, a consumer may augment some data and then pass it on to another system for further processing. Or a consumer may read one stream, modify the received records, possibly adding data from a database, and after, create new records to be sent to a different stream for further processing or long-term storage.