Basically, if you want to get data from one place to another and care about order, Kafka is a good solution. It acts as a middleman between services.
Basically, if you want to get data from one place to another and care about order, Kafka is a good solution. It acts as a middleman between services.
If you are just dumping into ES, then yes, probably not the best tool (though it wouldn't necessarily hurt) - just use the HTTP API for that. However if you want to build a robust pipeline for multiple services or think you'll be needing to scale the feed into ES, Kafka is useful.
We just implemented Kinesis (AWS service similar to Kafka) to reduce load on our Elasticsearch database (~50GB) when running hundreds of individual jobs.
Individual tasks (implemented in Celery, actually running off Redis) push to a Kinesis stream which is then consumed in batches by a very simple processor.
https://martin.kleppmann.com/2015/05/27/logs-for-data-infras...