Amazon SNS FIFO – First-in-First-Out Pub/Sub Messaging
aws.amazon.com
aws.amazon.com
The thing Kafka doesn't handle so well is increasing the number of partitions dynamically, so in some sense this is just a different name for the abstraction - you could still create N topics upfront and it would be similar to Kafka. But then why have the message group id in the first place if not to allow the topic to scale beyond what a single node can handle?
https://news.ycombinator.com/item?id=24658132
That, or they both had convergent evolution and came to the same set of requirements, maybe from some big user at the same moment contacting both of them a year ago, which actually feels really likely to me (more likely than them responding to anything).
I want to say Kafka can do significantly higher messages per second on a single partition (and significantly higher than that on a many-partition topic). I don't think it can compete for a lot of use cases as a result. If I were in the market for managed Kafka, I think I would just go straight to Confluent.
this is hard yo
$ python3
>>> import boto3
>>> sns=boto3.client('sns')
>>> sns.create_topic(Name='DopeService')
>>> sns.subscribe(TopicArn='arn:aws:sns:us-east-1:xxxxxxxxxxxx:DopeService',Protocol='sms',Endpoint='+18008675309')
>>> ...<repeat for other SMS #'s>...
>>> sns.publish(TopicArn='arn:aws:sns:us-east-1:xxxxxxxxxxxx:DopeService',Message='sup')
If you're a masochist you can have Amazon notify everyone on the topic every time someone uploads to your bucket >>> sns.set_topic_attributes(TopicArn='arn:aws:sns:us-east-1:xxxxxxxxxxxx:DopeService',AttributeName='Policy',AttributeValue='<policy>')
>>> s3.put_bucket_notification_configuration(Bucket='dopebucket',NotificationConfiguration={<notification config>})
You send directly to HTTP/HTTPS service endpoints, other SNS topics, Lambdas, SQS queues and mobile app push notifications. SNS is more about signaling than a raw message pipe. Relative to Kafka it's basically apples and oranges.