Amazon has just come out with yet another service to help build your app on AWS. Their Simple Notification Service is a pub/sub setup where you create topics and users can subscribe. Delivery is via a “push” mechanism, so subscribers won’t need to poll for new messages. Output can be one of several protocols which include http/https/email/email-json or sqs. While the e-mail output can be useful for managing things like users watching a comment or blog post. The other options are clearly geared towards consumption by other software. Imagine the http options being used to implement a web service callback. SQS is clearly helpful for building loosely coupled services in the cloud. Now, SNS can help feed into those services.
For more information, visit the SNS documentation
Jeff Barr also does an excellent job of describing SNS at the AWS blog.
typica now supports SNS. Subversion contains the latest code. A release will be coming shortly. (check this space for updates)
Here’s an example of how to use typica to create a topic, subscribe, send a message, then unsubscribe and remove the topic;
NotificationService sns = new NotificationService(props.getProperty("aws.accessId"), props.getProperty("aws.secretKey")); Result<String> ret = sns.createTopic("TestTopic"); String topicArn = ret.getResult(); System.err.println("topicArn: "+topicArn); sns.subscribe(topicArn, "email", "email@example.com"); System.out.println("Waiting till subscription is confirmed."); System.out.println("Check your e-mail, confirm, then press <return>"); System.in.read(); List<SubscriptionInfo> subs = sns.listSubscriptionsByTopic(topicArn, null).getItems(); String subArn = subs.get(0).getSubscriptionArn(); System.err.println("subscriptionArn: "+subArn); sns.publish(topicArn, TEST_MSG, "[SNS] testing..."); sns.unsubscribe(subArn); sns.deleteTopic(topicArn);