Likelihood to Recommend Amazon Kinesis is a great replacement for Kafka and it works better whenever the components of the solution are AWS based.
Best if extended fan-out is not required, but still price-performance ratio is very good for simplifying maintenance. I would go with a different option if the systems to be connected are legacy, for instance in the case of traditional messaging clients.
Read full review In well-suited scenarios, I would recommend using Apache Flink when you need to perform real-time analytics on streaming data, such as monitoring user activities, analyzing IoT device data, or processing financial transactions in real-time. It is also a good choice in scenarios where fault tolerance and consistency are crucial. I would not recommend it for simple batch processing pipelines or for teams that aren't experienced, as it might be overkill, and the steep learning curve may not justify the investment.
Read full review Pros Processing huge loads of data Integrating well with IoT Platform on Amazon Integration with overall AWS Ecosystem Scalability Read full review Low latency Stream Processing, enabling real-time analytics Scalability, due its great parallel capabilities Stateful Processing, providing several built-in fault tolerance systems Flexibility, supporting both batch and stream processing Read full review Cons Not a queue system, so little visibility into "backlog" if there is any Confusing terminology to make sure events aren't missed Sometimes didn't seem to trigger Lambda functions, or dropped events when a lot came in Read full review Python/SQL API, since both are relatively new, still misses a few features in comparison with the Java/Scala option Steep Learning Curve, it's documentation could be improved to something more user-friendly, and it could also discuss more theoretical concepts than just coding Community smaller than other frameworks Read full review Support Rating The documentation was confusing and lacked examples. The streams suddenly stopped working with no explanation and there was no information in the logs. All these were more difficult when dealing with enhanced fan-out. In fact, we were about to abort the usage of Kinesis due to a misunderstanding with enhanced fan-out.
Read full review Alternatives Considered The main benefit was around set up - incredibly easy to just start using Kinesis. Kinesis is a real-time data processing platform, while Kafka is more of a message queue system. If you only need a message queue from a limited source, Kafka may do the job. More complex use cases, with low latency, higher volume of data, real time decisions and integration with multiple sources and destination at a decent price, Kinesis is better.
Read full review Apache Spark is more user-friendly and features higher-level APIs. However, it was initially built for batch processing and only more recently gained streaming capabilities. In contrast, Apache Flink processes streaming data natively. Therefore, in terms of low latency and fault tolerance, Apache Flink takes the lead. However, Spark has a larger community and a decidedly lower learning curve.
Read full review Return on Investment Caused us to need to re-engineer some basic re-try logic Caused us to drop some content without knowing it Made monitoring much more difficult We eventually switched back to SQS because Kinesis is not the same as a Queue system Read full review Allowed for real-time data recovery, adding significant value to the busines Enabled us to create new internal tools that we couldn't find in the market, becoming a strategic asset for the business Enhanced the overall technical capability of the team Read full review ScreenShots