Cloud Messaging Services

AWS & Azure Messaging Services

Messaging services enable disparate systems to communicate and exchange information. AWS and Azure both provide highly available and reliable services to build real-time and non-real time event driven architectures.

Event driven architectures use events (small messages) to invoke a service and pass information between systems in near real time. Typical components in a EDA are event producers/publishers, event routers and event consumers/subscribers. 

All  the services push messages (or at least support) to consumers in near real-time automatically. Consumers need not poll anymore, which introduces latency, consumes CPU cycles, etc. In some cases you might want to poll for messages when you don't want to handle messages in real-time or have downstream systems that don't scale well.

Amazon MQ:

Is an enterprise grade fully managed service to run Apache Active MQ or Rabbit MQ message brokers. It provides all the features of the underlying message broker you would need to build a robust system. 

This service can push messages to Amazon Lambda or consumers can poll for messages.

Azure has a similar service called Azure Service Bus.

Amazon SQS:

Is an elastically scalable managed message queuing service to store messages until processed by consumers. It integrates with AWS Lambda to push messages. 
Azure offers storage queues which is same as AWS SQS Standard and Service Bus queues which is similar to AWS SQS FIFO.

Amazon SNS:

SNS is fully managed push based pub/sub service based on topics. SNS service pushes messages to consumers (Http, Lambda, SQS, mobile devices etc.). SNS supports Standard and FIFO topics. The messages have to be small (256KB)  and there's no guarantee on order and they can be delivered more than once. They messages are not stored and disappear if there are no subscribers. But you can setup dead-letter-queue (DLQ) to capture undelivered messages. FIFO type maintains order and supports exactly once delivery but is expensive.

Azure has something similar called Azure Notifications Hub but its designed for mobile. 

Amazon EventBridge: 

Is a fully managed push based pub/sub service that routes real-time events from producers to consumers based on rules defined. You can only define up to 5 targets for each rule. They don't guarantee order and delivery count. If an event does not match any rules it disappears unless you setup AWS DLQ (SQS). 

Azure's similar offering is Azure Event Grid service.

Comments

Popular posts from this blog

Offline Apps Patterns and Tools

Private Cloud Platforms

Application Delivery in the cloud