Kafkaを使うなら読んでおきたい一冊

オライリー・ジャパンから出版された「Kafka」を、監訳者であり同僚の@ueokande氏に献本いただいたので紹介したいと思います。

f:id:ZOETROPE:20180818112927j:plain:w600

本書は「Kafka: The Definitive Guide」の翻訳本です。
原著はKafka v0.11を対象に書かれていましたが、本書を翻訳するにあたってKafka v1.1に合わせて加筆修正しているようです。

なお、つい先日Kafka v2.0.0がリリースされました。
ざっとリリースノートを眺めてみましたが、基本的な仕組みについては大きくは変わっていないようなので、本書の内容はほとんどそのまま通用すると思います。

翻訳は自然な日本語になっていて読みやすかったです。
一部、英語をカタカナに訳しただけになっていてちょっと分かりにくい箇所もありますが、これは技術書を翻訳するときには避けられず、しょうがないところではありますね。

Kafkaを本番運用するなら読んでおきたい

KafkaはPublish/Subscribe型の分散メッセージングシステムであり、複数のシステム間に高信頼で高性能なバッファを提供し、システム間の関係を疎結合にしてくれます。
Kafkaはシステムの中での主役ではありませんが、システム間の連携をおこなう際には非常に便利に利用することができます。

Kafkaは柔軟性が高く様々な用途に利用することができますが、本番環境で実際に運用するためには、正しく設定をおこなう必要があります。
例えば、どの程度のデータの信頼性を保証するのか、スループットとレイテンシのどちらを重視するのか、メッセージの順序を保証したいのか、メッセージの重複を許容するのかなど、構築するシステムの要件に応じて設定を変えていく必要があります。

本書を読めば、Kafkaがどのように動いているのかが理解でき、Kafkaサーバの設定とプログラミングを正しくおこえるようになるでしょう。
また本書の原著はKafkaの開発者が執筆しているので、内部的な構造まで詳しく解説されています。
Kafkaを利用する場合に役立つ情報であるのはもちろんのこと、分散システムの仕組みを学ぶ上でも有益な情報です。

Kafkaを利用したシステムを構築する際には是非とも手元に置いておきたい一冊ですね。