HACKER Q&A
📣 1penny42cents

When would you go with Kinesis over SNS/SQS and why?


In a previous project we went with SNS/SQS for our event bus, because of simplicity. I wondered towards the end if Kinesis would have been better.

The main reason in my mind being one less API/component, ordered streams, and replayability. SNS/SQS made it a bit painful to replay events. The counterpoint seems that Kinesis has some complexity around scalability that you might not need to worry about, depending on the usage.

But I've never used Kafka/Kinesis so I can't say. What are your thoughts?


  👤 nivertech Accepted Answer ✓

  Message Brokers:
  - Amazon SNS + Mobile push notifications
  - Amazon SQS
  - Amazon EventsBridge
  - Amazon MQ for RabbitMQ
  - Amazon MQ for Apache ActiveMQ
  
  Pub/Sub:
  - AWS IoT Core for managed MQTT message broker
  - Amazon ElastiCache for Redis

  Append Only Logs:
  - Amazon Managed Streaming for Apache Kafka (Amazon MSK)
  - AWS Kinesis Data Streams
  - AWS Kinesis Data Firehose

  New RabbitMQ will have Append-Only Logs via RabbitMQ Streaming - not sure AWS already supports this

  Same for Redis Streams - not sure Amazon ElastiCache for Redis already supports this

👤 fiftyacorn
I think the comparison of sqs/sns Vs eventbridge sounds more like what your mean

I find eventbridge gives better decoupling than sqs and is easier to configure