The most important messaging services we need to know when it comes to Application Integration are the following:
Remember these keywords against each messaging service
SNS: PubSub (Like publisher, subscriber)
SQS: Queueing (Like batch)
Kinesis: Real-time data
Kafka: BigData
SWF: State tracker and task coordinator
SNS - Amazon Simple Notification Service:
SNS is commonly used for sending simple internal emails. So for example when someone sign-ups on a website, We can use the AWS SDK to send a message to an SNS topic which then sends a plain text email.
Another way we use SNS is to trigger webhooks in our application. For example, let us say we have a web-app which needs to extract data out of a PDF so we need to use a PDFTK which we have to run in a custom runtime in a Lambda function because of legacy reasons. When that lambda has processed that pdf we want to notify our web-app to tell the user it's done. We can have Lambda tell SNS which will then send an HTTP request to an api endpoint (webhook) to our web-app which will then update the user that the pdf has finished processing.
SQS - Amazon Simple Queue Service:
When we send out an email such as confirmation or reset password on website we use SQS to decouple email sending from our app so it doesn't cause the app to hang.
Kinesis:
Kinesis has been really good for gaming where we need a simple streaming queue.
MKS - Amazon Managed Streaming for Kafka:
It is used in BigData, to use real-time messaging systems tend to use Kafka. AWS has a managed service called MKS (Managed Kafka Service).
SWF - Simple Workflow Service:
Amazon SWF helps developers build, run, and scale background jobs that have parallel or sequential steps. You can think of Amazon SWF as a fully-managed state tracker and task coordinator in the Cloud
Comments
Post a Comment