Real-Time Data and Stream Processing at Scale
Gwen Shapira, Todd Palino,, Rajini Sivaram, Krit Petty

#Kafka
#Definitive_Guide
#API
#developers
#streaming
#architecture
📨 تسلط بر Apache Kafka؛ از انتقال داده تا پردازش Stream در Production
🚀 هر Enterprise Application بهطور مداوم دادههایی مثل Log، Metric، User Activity و پیامهای خروجی تولید میکنه و جابهجایی مطمئن این دادهها بهاندازه خود داده اهمیت داره. ویرایش بهروزشده Kafka: The Definitive Guide معماری، APIها و شیوههای عملی لازم برای مدیریت Data in Motion با Apache Kafka را از راهاندازی اولیه تا اجرای Production آموزش میده.
✨ ویژگیهای کلیدی
⚙️ بهترین روشهای نصب، پیکربندی و استقرار Kafka Clusterهای آماده Production را توضیح میده.
📤 کار با Kafka Producerها و Consumerها را برای نوشتن پیام و خواندن داده آموزش میده.
🛡️ Patternها، Reliability Guaranteeها و الزامات لازم برای تحویل مطمئن داده و Exactly-Once Semantics را بررسی میکنه.
🏗️ نحوه ساخت Data Pipelineها، Event-Driven Microserviceها و برنامههای مقیاسپذیر Stream Processing را پوشش میده.
📊 روشهای Monitoring، Tuning، Administration و Maintenance در Production را همراه با مهمترین Metricهای عملیاتی Kafka توضیح میده.
📘 توضیح کتاب
🗃️ تمام برنامههای سازمانی داده تولید میکنن؛ از Log Message و Metric گرفته تا User Activity و پیامهای خروجی. این دادهها زمانی ارزش عملی پیدا میکنن که بتونن بهدرستی و با Reliability مناسب میان سیستمها حرکت کنن. کتاب روی همین مفهوم Data in Motion و نقش Kafka در مدیریت آن تمرکز داره.
🧭 این ویرایش بهروزشده برای Application Architectها، Developerها و Production Engineerهایی نوشته شده که بهتازگی وارد پلتفرم Streaming کافکا شدن. فصلهای تازهای نیز درباره AdminClient API، Transactionها، قابلیتهای امنیتی جدید و تغییرات ابزارهای Kafka ارائه شده است.
🏢 مهندسانی از Confluent و LinkedIn که در توسعه Kafka نقش دارن، نحوه استقرار Kafka Clusterهای Production، نوشتن Event-Driven Microserviceهای قابلاعتماد و ساخت برنامههای مقیاسپذیر Stream Processing را توضیح میدن.
🧠 مثالهای دقیق کتاب کمک میکنن Design Principleها، Reliability Guaranteeها، APIهای اصلی و جزئیات معماری Kafka را درک کنی. Replication Protocol، Controller و Storage Layer هم با جزئیات بررسی میشن تا فقط با نحوه استفاده از Kafka آشنا نشی، بلکه سازوکار داخلی آن را هم بفهمی.
📤 بخشهای عملی، Kafka Producerها و Consumerها را برای نوشتن و خواندن پیام بررسی میکنن. سپس Patternها و الزامات Use Caseهایی مطرح میشن که برای تحویل مطمئن داده، Exactly-Once Semantics و ساخت سیستمهای قابلاعتماد ضروری هستن.
🏗️ کتاب بهترین روشهای ساخت Data Pipeline و Application با Kafka، Mirroring داده میان Clusterها، ایمنسازی Kafka و مدیریت Programmatic آن را پوشش میده. قابلیتهای Kafka برای تحویل داده به Stream Processing Systemها هم در بخشهای پایانی بررسی میشن.
📊 در مباحث Production، نحوه Monitoring، Tuning، Administration و انجام Maintenance Taskها آموزش داده میشه. از میان اندازهگیریهای عملیاتی متعدد Kafka، مهمترین Metricهایی که برای بررسی سلامت و عملکرد سیستم لازم هستن مشخص میشن.
🎯 پس از مطالعه کتاب، دیدی کاملتر نسبت به طراحی، استقرار و بهرهبرداری از Kafka به دست میاری و میتونی Producer، Consumer، Data Pipeline، Event-Driven Microservice و Stream Processing Applicationهایی بسازی که برای Scale و Reliability در محیط Production طراحی شدهاند.
🎯 چیزهایی که یاد میگیری
⚙️ یاد میگیری Kafka را براساس Best Practiceها نصب، پیکربندی و در Production مستقر کنی.
📤 میتونی با Kafka Producerها پیام بنویسی و با Consumerها دادهها را بخونی.
🛡️ با Patternها و Reliability Requirementهای لازم برای تحویل مطمئن داده آشنا میشی.
🔁 مفهوم Exactly-Once Semantics و نقش Transactionها در پردازش قابلاعتماد را درک میکنی.
🏗️ یاد میگیری Data Pipelineها و Event-Driven Microserviceهای مقیاسپذیر با Kafka بسازی.
🌐 میتونی دادهها را میان Kafka Clusterهای مختلف Mirror کنی و Stream Processing Application توسعه بدی.
🔐 با AdminClient API، Administration، Security Featureهای جدید و ابزارهای Kafka کار میکنی.
📊 یاد میگیری Kafka را در Production مانیتور، Tune و نگهداری کنی و مهمترین Metricهای عملیاتی آن را تشخیص بدی.
👤 این کتاب برای چه کسانیه؟
💻 Kafka: The Definitive Guide برای Software Engineerهایی نوشته شده که برنامههای مبتنی بر Kafka APIها را توسعه میدن. همچنین برای Production Engineerها، که با عنوانهایی مثل SRE، DevOps Engineer یا Sysadmin هم شناخته میشن، مناسبه؛ افرادی که Kafka را در Production نصب، پیکربندی، Tune و Monitor میکنن.
🏗️ Data Architectها و Data Engineerهایی که مسئول طراحی و ساخت کل Data Infrastructure یک سازمان هستن هم از مخاطبان اصلی کتاب به شمار میرن.
☕ بعضی فصلها، بهویژه فصلهای ۳، ۴ و ۱۴، بیشتر برای Java Developerها تنظیم شدهاند. این فصلها آشنایی با مبانی Java، از جمله Exception Handling و Concurrency را فرض میکنن.
🐧 فصلهای ۲، ۱۰، ۱۲ و ۱۳ به مقداری تجربه اجرای Linux و آشنایی با Storage و Network Configuration در Linux نیاز دارن. بخشهای دیگر درباره Kafka و Software Architecture بهصورت عمومیتر صحبت میکنن و دانش تخصصی مشخصی را پیشفرض نمیگیرن.
👔 Managerها و Architectهایی که مستقیما با Kafka کار نمیکنن اما با تیمهای Kafka همکاری دارن هم میتونن از کتاب استفاده کنن. شناخت Guaranteeهای Kafka و Trade-Offهایی که کارکنان و همکاران هنگام ساخت سیستمهای Kafka-Based با آنها روبهرو میشن، برای این گروه هم اهمیت داره.
🎓 کتاب میتونه اطلاعات و استدلال لازم را در اختیار Managerهایی قرار بده که میخوان کارکنان خود را در زمینه Apache Kafka آموزش بدن یا مطمئن بشن اعضای تیم دانش ضروری این حوزه را در اختیار دارن.
📖 فهرست مطالب
فصل ۱. آشنایی با Kafka
فصل ۲. نصب Kafka
فصل ۳. Kafka Producerها؛ نوشتن پیام در Kafka
فصل ۴. Kafka Consumerها؛ خواندن داده از Kafka
فصل ۵. مدیریت Programmatic پلتفرم Apache Kafka
فصل ۶. سازوکارهای داخلی Kafka
فصل ۷. تحویل مطمئن داده
فصل ۸. Exactly-Once Semantics
فصل ۹. ساخت Data Pipelineها
فصل ۱۰. Mirroring داده میان Clusterها
فصل ۱۱. ایمنسازی Kafka
فصل ۱۲. مدیریت Kafka
فصل ۱۳. مانیتورینگ Kafka
فصل ۱۴. Stream Processing
ضمیمه A. نصب Kafka روی سیستمعاملهای دیگر
ضمیمه B. ابزارهای تکمیلی Kafka
👥 درباره نویسندگان
🏗️ گوئن شاپیرا System Architect در Confluent است و به مشتریان کمک میکنه پیادهسازی Apache Kafka خود را با موفقیت انجام بدن. او پانزده سال تجربه کار با Code و مشتریان برای ساخت Data Architectureهای مقیاسپذیر و یکپارچهسازی فناوریهای Relational و Big Data داره.
📨 تخصص فعلی گوئن ساخت Pipelineهای قابلاعتماد Real-Time Data Processing با Apache Kafka است. او Oracle Ace Director، نویسنده کتاب Hadoop Application Architectures و سخنران پرتکرار کنفرانسهای Data-Driven است.
🌐 گوئن همچنین Committer پروژههای Apache Kafka و Apache Sqoop است.
⚙️ تاد Staff Site Reliability Engineer در LinkedIn است و مسئول حفظ و نگهداری بزرگترین استقرار Apache Kafka، Zookeeper و Samza است.
📊 او مسئول Architecture، عملیات روزمره و توسعه ابزارهاست و یک سیستم پیشرفته Monitoring و Notification هم ایجاد کرده است. تاد توسعهدهنده پروژه Open Source Burrow، ابزار مانیتورینگ Kafka Consumerها، است و تجربه خود درباره Apache Kafka را در کنفرانسهای صنعتی و Tech Talkها به اشتراک میذاره.
🖥️ تاد بیش از بیست سال در صنعت فناوری و زمینه اجرای Infrastructure Serviceها فعالیت کرده است. آخرین سمت پیشین او Systems Engineer در Verisign بود؛ جایی که برای DNS، Networking و Hardware Management، سیستم Service Management Automation توسعه داد و Standardهای سختافزاری و نرمافزاری شرکت را مدیریت کرد.
🔐 راجینی سیوارام Software Engineer در Confluent است و قابلیتهای امنیتی Kafka را طراحی و توسعه میده. او Apache Kafka Committer و عضو Apache Kafka Program Management Committee است.
⚡ راجینی پیش از پیوستن به Confluent در Pivotal روی یک Reactive API با Performance بالا برای Kafka و مبتنی بر Project Reactor کار میکرد.
☁️ او پیشتر یکی از Developerهای اصلی IBM Message Hub بود؛ سرویسی که Kafka-as-a-Service را روی پلتفرم IBM Bluemix ارائه میکنه. تجربه او حوزههایی از Parallel و Distributed Systemها تا Java Virtual Machine و Messaging Systemها را پوشش میده.
📈 کریت پتی Site Reliability Engineering Manager بخش Kafka در LinkedIn است. او پیش از رسیدن به سمت Manager، بهعنوان SRE در این تیم فعالیت میکرد و برای توسعه و افزایش مقیاس Kafka با محدودیتهایی کار کرد که در Scaleهای پیشین دیده نشده بودن.
☁️ فعالیتهای او شامل برداشتن نخستین گامها برای انتقال استقرارهای بزرگمقیاس Kafka در LinkedIn به Cloud پلتفرم Microsoft Azure میشه.
🎓 کریت مدرک Master در رشته Computer Science داره و پیشتر در مدیریت Linux Systemها فعالیت کرده است. او همچنین Software Engineer پروژههای High-Performance Computing در صنعت Oil and Gas بوده است.
Every enterprise application creates data, whether it consists of log messages, metrics, user activity, or outgoing messages. Moving all this data is just as important as the data itself. With this updated edition, application architects, developers, and production engineers new to the Kafka streaming platform will learn how to handle data in motion. Additional chapters cover Kafka's AdminClient API, transactions, new security features, and tooling changes.
Engineers from Confluent and LinkedIn responsible for developing Kafka explain how to deploy production Kafka clusters, write reliable event-driven microservices, and build scalable stream processing applications with this platform. Through detailed examples, you'll learn Kafka's design principles, reliability guarantees, key APIs, and architecture details, including the replication protocol, the controller, and the storage layer.
You'll examine:
Kafka: The Definitive Guide was written for software engineers who develop applications that use Kafka’s APIs, and for production engineers (also called SREs, DevOps, or sysadmins) who install, configure, tune, and monitor Kafka in production. We also wrote the book with data architects and data engineers in mind—those responsible for designing and building an organization’s entire data infrastructure. Some of the chapters, especially Chapters 3, 4, and 14, are geared toward Java developers. Those chapters assume that the reader is familiar with the basics of the Java programming language, including topics such as exception handling and concurrency. Other chapters, especially Chapters 2, 10, 12, and 13, assume the reader has some experience running Linux and some familiarity with storage and network configuration in Linux. The rest of the book discusses Kafka and software architectures in more general terms and does not assume special knowledge.
Another category of people who may find this book interesting are the managers and architects who don’t work directly with Kafka but work with the people who do. It is just as important that they understand the assurances that Kafka provides and the trade-offs that their employees and coworkers will need to make while building Kafka-based systems. The book can provide ammunition to managers who would like to get their staff trained in Apache Kafka or ensure that their teams know what they need to know.
Table of Contents
Chapter 1. Meet Kafka
Chapter 2. Installing Kafka
Chapter 3. Kafka Producers: Writing Messages to Kafka
Chapter 4. Kafka Consumers: Reading Data from Kafka
Chapter 5. Managing Apache Kafka Programmatically
Chapter 6. Kafka Internals
Chapter 7. Reliable Data Delivery
Chapter 8. Exactly-Once Semantics
Chapter 9. Building Data Pipelines
Chapter 10. Cross-Cluster Data Mirroring
Chapter 11. Securing Kafka
Chapter 12. Administering Kafka
Chapter 13. Monitoring Kafka
Chapter 14. Stream Processing
Appendix A. Installing Kafka on Other Operating Systems
Appendix B. Additional Kafka Tools
Gwen Shapira is a system architect at Confluent helping customers achieve success with their Apache Kafka implementation. She has 15 years of experience working with code and customers to build scalable data architectures, integrating relational and big data technologies. She currently specializes in building real-time reliable data processing pipelines using Apache Kafka. Gwen is an Oracle Ace Director, an author of "Hadoop Application Architectures", and a frequent presenter at data driven conferences. Gwen is also a committer on the Apache Kafka and Apache Sqoop projects.
Todd is a Staff Site Reliability Engineer at LinkedIn, tasked with keeping the largest deployment of Apache Kafka, Zookeeper, and Samza fed and watered. He is responsible for architecture, day-to-day operations, and tools development, including the creation of an advanced monitoring and notification system. Todd is the developer of the open source project Burrow, a Kafka consumer monitoring tool, and can be found sharing his experience on Apache Kafka at industry conferences and tech talks. Todd has spent over 20 years in the technology industry running infrastructure services, most recently as a Systems Engineer at Verisign, developing service management automation for DNS, networking, and hardware management, as well as managing hardware and software standards across the company.
Rajini Sivaram is a Software Engineer at Confluent designing and developing security features for Kafka. She is an Apache Kafka Committer and member of the Apache Kafka Program Management Committee. Prior to joining Confluent, she was at Pivotal working on a high-performance reactive API for Kafka based on Project Reactor. Earlier, Rajini was a key developer on IBM Message Hub which provides Kafka-as-a-Service on the IBM Bluemix platform. Her experience ranges from parallel and distributed systems to Java virtual machines and messaging systems.
Krit Petty is the Site Reliability Engineering Manager for Kafka at LinkedIn. Before becoming Manager, he worked as an SRE on the team expanding and increasing Kafka to overcome the hurdles associated with scaling Kafka to never before seen heights, including taking the first steps to moving LinkedIn's large-scale Kafka deployments into Microsoft's Azure cloud. Krit has a Master's Degree in Computer Science and previously worked managing Linux systems and as a Software Engineer developing software for high-performance computing projects in the oil and gas industry.









