प्रदान किए गए मार्ग से, काफ्का में प्रमुख एपीआई की सूची बनाएं। उन्हें अल्पविराम से अलग करें।काफ्का कुंजी-मूल्य संदेशों को संग्रहीत करता है जो मनमाने ढंग से कई प्रक्रियाओं से आते हैं जिन्हें निर्माता कहा जाता है। डेटा को अलग-अलग "विषयों" के भीतर अलग-अलग "विभाजन" में विभाजित किया जा सकता है। एक विभाजन के भीतर, संदेशों को उनके ऑफसेट (विभाजन के भीतर एक संदेश की स्थिति) द्वारा सख्ती से आदेशित किया जाता है, और एक टाइमस्टैम्प के साथ अनुक्रमित और संग्रहीत किया जाता है। "उपभोक्ता" नामक अन्य प्रक्रियाएं विभाजन से संदेश पढ़ सकती हैं। स्ट्रीम प्रोसेसिंग के लिए, काफ्का स्ट्रीम एपीआई प्रदान करता है जो जावा अनुप्रयोगों को लिखने की अनुमति देता है जो काफ्का से डेटा का उपभोग करते हैं और काफ्का को परिणाम वापस लिखते हैं। Apache Kafka Apache Apex, Apache Beam, Apache Flink, Apache Spark, Apache Storm, और Apache NiFi जैसे बाहरी स्ट्रीम प्रोसेसिंग सिस्टम के साथ भी काम करती है।

काफ्का एक या एक से अधिक सर्वरों (जिन्हें दलाल कहा जाता है) के समूह पर चलता है, और सभी विषयों के विभाजन क्लस्टर नोड्स में वितरित किए जाते हैं। इसके अतिरिक्त, विभाजन को कई दलालों के लिए दोहराया जाता है। यह आर्किटेक्चर काफ्का को एक दोष-सहिष्णु फैशन में संदेशों की विशाल धाराएं देने की अनुमति देता है और इसने कुछ पारंपरिक मैसेजिंग सिस्टम जैसे जावा मैसेज सर्विस (JMS), एडवांस्ड मैसेज क्यूइंग प्रोटोकॉल (AMQP), आदि को 0.11 के बाद से बदलने की अनुमति दी है। 0.0 रिलीज़ के बाद, काफ्का ट्रांसेक्शनल राइट्स प्रदान करता है, जो स्ट्रीम एपीआई का उपयोग करके बिल्कुल एक बार स्ट्रीम प्रोसेसिंग प्रदान करता है।

काफ्का दो प्रकार के विषयों का समर्थन करता है: नियमित और संकुचित। नियमित विषयों को अवधारण समय या स्पेस बाउंड के साथ कॉन्फ़िगर किया जा सकता है। यदि ऐसे रिकॉर्ड हैं जो निर्दिष्ट अवधारण समय से पुराने हैं या यदि विभाजन के लिए स्थान सीमा पार हो गई है, तो काफ्का को पुराने डेटा को मुक्त संग्रहण स्थान से हटाने की अनुमति है। डिफ़ॉल्ट रूप से, विषयों को 7 दिनों के अवधारण समय के साथ कॉन्फ़िगर किया जाता है, लेकिन डेटा को अनिश्चित काल तक संग्रहीत करना भी संभव है। संकुचित विषयों के लिए, रिकॉर्ड समय या स्थान की सीमा के आधार पर समाप्त नहीं होते हैं। इसके बजाय, काफ्का बाद के संदेशों को उसी कुंजी के साथ पुराने संदेश के अपडेट के रूप में मानता है और गारंटी देता है कि प्रति कुंजी नवीनतम संदेश को कभी न हटाएं। उपयोगकर्ता एक विशिष्ट कुंजी के लिए शून्य-मान के साथ तथाकथित टॉम्बस्टोन संदेश लिखकर संदेशों को पूरी तरह से हटा सकते हैं।

काफ्का में पाँच प्रमुख एपीआई हैं:

निर्माता एपीआई - रिकॉर्ड की धाराओं को प्रकाशित करने के लिए एक आवेदन की अनुमति देता है।
उपभोक्ता एपीआई - किसी एप्लिकेशन को विषयों की सदस्यता लेने की अनुमति देता है और रिकॉर्ड की धाराओं को संसाधित करता है।
कनेक्टर एपीआई - पुन: प्रयोज्य निर्माता और उपभोक्ता एपीआई को निष्पादित करता है जो विषयों को मौजूदा अनुप्रयोगों से जोड़ सकता है।
स्ट्रीम एपीआई - यह एपीआई इनपुट स्ट्रीम को आउटपुट में परिवर्तित करता है और परिणाम उत्पन्न करता है।
व्यवस्थापक एपीआई - काफ्का विषयों, दलालों और अन्य काफ्का वस्तुओं का प्रबंधन करने के लिए उपयोग किया जाता है।
अंतर्निहित मैसेजिंग प्रोटोकॉल के माध्यम से उपभोक्ता और निर्माता एपीआई को काफ्का की मुख्य कार्यक्षमता से अलग किया जाता है। यह किसी भी प्रोग्रामिंग भाषा में संगत एपीआई परतों को लिखने की अनुमति देता है जो काफ्का के साथ बंडल किए गए जावा एपीआई के समान कुशल हैं। अपाचे काफ्का परियोजना ऐसे तीसरे पक्ष के एपीआई की एक सूची बनाए रखती है।
1. Producer API
2. Consumer API
3. Connector API
4. Stream API
5. Admin API