Home / Companies / Confluent / Blog / Post Details
Content Deep Dive

A Deep Dive Into Sending With librdkafka

Blog post from Confluent

Post Details
Company
Date Published
Author
Jakub Korab
Word Count
2,528
Company Posts That Month
15
Language
English
Hacker News Points
2
Post removed?
No
Summary

librdkafka, the widely used Kafka client library for C, C++, Python, .NET, Go, and other non-JVM environments, uses a production model that differs substantially from the Java client and is especially relevant to external-facing applications that must tolerate Kafka outages. Applications configure a producer and delivery-report callback, submit messages with produce APIs, and explicitly call rd_kafka_poll() to process broker responses and release message memory. Sending involves application threads that enqueue messages, a main library thread that retrieves cluster metadata, assigns partitions, and creates broker threads, and one broker thread per broker that batches, serializes, transmits, retries eligible failures, and returns results through a reply queue. Delivery callbacks provide error and persistence-status information, including whether a message was not persisted, possibly persisted, or confirmed persisted, with the latter most reliable when acks=all is used. The library’s built-in retries and idempotent production are generally preferable to application-level retries because they better preserve ordering and avoid duplicate records. Since messages remain in memory until replies are polled and callbacks execute, queue size limits can cause produce calls to return a queue-full error, requiring applications to poll and then retry submission.

Trends Found in this Post
Trend Post Mentions Total Month Mentions Posts Companies MoM
Real-time 1 2,676 681 199 -1%
Use This Data

Use this post, company, and trend context to find content marketing opportunities, perform competitive analysis, or address product feature gaps via the Plushcap MCP server or the Plushcap API.