summary:
Kafkaはパブリッシュ-サブスクライブ[Pub/Sub]モデルに基づき,プロデューサーから送信されたメッセージをトピック単位で蓄積し,それをコンシューマーが非同期的に取得する構造を持つ.
データは順序を保持したログ形式でトピックに格納され,耐障害性とスケーラビリティを実現するために,パーティションとレプリケーションによる分散アーキテクチャが採用されている.
Kafkaは,2010年にLinkedIn社内でのログデータ処理基盤のニーズに応えるために開発された.当時の既存のメッセージングシステムでは,高いスループットと耐障害性を両立したリアルタイム処理が困難であり,その課題を解決する手段としてKafkaが誕生した.開発者であるJay KrepsらはKafkaという名称を作家フランツ・カフカにちなんで命名した.2011年にはApache Incubatorに寄贈され,2012年に正式なApacheプロジェクトとして採択された後,コミュニティ主導のもとで急速に発展を遂げた.現在では,ログ収集,メトリクス転送,イベントストリーミング,マイクロサービス間通信など,多岐にわたる用途で広く利用されている.
Mathematics is the language with which God has written the universe.