The main differences between Kinesis Streams (video and data) and Firehose is that Kinesis Stream stores data persistently for a specified retention period and it allows you to write consumer applications. On the other hand, Firehose doesn't store data persistently nor does it allow you to create a consumer application. It acts as an ingesting service, which means that it collects and transforms data in real time before storing it in supported storage.
At the time of writing this book, Kinesis Data Firehose can be integrated with Amazon's S3 bucket, Amazon Redshift cluster, Amazon Elasticsearch cluster, and Splunk. In general, answering the following questions will help you to select the right service:
- Are ingesting messages required to be stored in the stream?
- Are you looking for a managed solution or are you planning to manage a solution yourself...