Apache Kafkaとは?
簡単に言ってしまうと、多少乱暴ですが、IFTTTやZapierのような物です。
プログラム的には、下記の記事が非常に概念的にはわかりやすくなっております。
【何となく理解したい】Apache Kafkaってなに?
NTT DATAさんの概念図を見るとさらにわかりやすいかもしれません。
NTT DATAさんのApache kafkaとは
内部的なアーキテクチャは下記の記事がわかりやすいです。
Apache Kafkaの概要とアーキテクチャ
必要かどうかの切り分け
正直な所、Kafkaのようなシステムを入れるメリットは大きく下記の2点と言えます。
- スモールサービス間との連携、責任の切り分け
- システム負荷に対する時間的な分散
開発に様々なベンダーが入ってるケースや、すでにキューなどの処理システムを入れてる場合で、他システムとの連携が必要な場合は長い目で見て、Kafkaの導入は望ましい物と言えます。 ただ、デメリットとしてはその分のイニシャル、運用の費用が増大する事でしょうか。
運用経費という意味ではAmazon Managed Streaming for Apache Kafka (MSK) が従量課金の為、かなりオススメとも言えます。