offs involved, and when you should and shouldn’t use the different options presented
by Apache Kafka.
Who Should Read This Book
Kaa: e Denitive Guide was written for software engineers who develop applica‐
tions 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 11 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 chap‐
ters, especially chapters 2, 8, 9, and 10, assume the reader has some experience run‐
ning 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 guarantees 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.
Conventions Used in This Book
The following typographical conventions are used in this book:
Italic
Indicates new terms, URLs, email addresses, filenames, and file extensions.
Constant width
Used for program listings, as well as within paragraphs to refer to program ele‐
ments such as variable or function names, databases, data types, environment
variables, statements, and keywords.
Constant width bold
Shows commands or other text that should be typed literally by the user.
Constant width italic
Shows text that should be replaced with user-supplied values or by values deter‐
mined by context.
xviii | Preface