Pub/Sub is, at its most basic, a form of asynchronous messaging providing service to service communication. Serverless situations often call for pub/sub, as do microservice architectures, to ensure that messages get to every part of a service that needs that information. Various systems use pub/sub messaging services, so let’s take a deeper look at how the service works and where it might be applicable.
What is Pub/Sub?
Pub stands for publisher. Sub means subscriber. This lets users or developers know that this messaging service supports the traditional publisher/subscriber type model. A publisher application is any app that creates and sends messages to a named resource, also known as a topic. The topic stores messages until it receives an acknowledgment from all current subscribers telling the topic that they’ve received the messages. In order to receive these messages, a subscriber application needs to create a subscription to that topic. A subscriber can receive the message by pub/sub pushing them to the subscriber’s chosen destination, or by pulling them from the service.
How Does Pub/Sub Work?
Once a subscriber acknowledges a message, the subscription backlog updates to remove the message. This avoids duplication. Messages may contain a payload plus any optional attributes that further describe the payload content.
Models of pub/sub communication include:
· One to many, also known as fan-out
· Many to one, which is, unsurprisingly, called fan-in
· Many to many, where various topics link to a range of subscribers
Subscribers can receive messages from two different publishers. This works by creating two differing subscriptions corresponding to the topics for each publisher. That’s one example of fan-in.
Likewise, if two different applications want to subscribe to the same message or topic from a publisher, then this works by creating two different subscriptions for the same topic. This follows the fan-out, or one to many model.
Iron.io Serverless Tools
Get in touch today and take a demo of our super-fast, reliable message queue service for free.
Pub/Sub Use Case Example
Example: An order processing and delivery service with asynchronous functionality.
A customer places an order, which starts the pub/sub process. The ordering service sends its messages to the relevant pub/sub topic and the topic stores the relevant messages. The packaging and notification services each subscribe to these messages through pub/sub subscription. As these are multiple subscribers, this is part of the fan-out model.
The packaging service then sends its own messages to pub/sub topic, and the shipping and notification services subscribe to the relevant pub/sub topic in order to receive these updates. The shipping service sends further messages to pub/sub topic, and the order and notification service subscribe in order to complete the flow of information and messages. This has become a many-to-many model, as we have various publishers and subscribers communicating at this point.
Because cloud pub/sub is a fully global service, it ensures that messages get from ordering to dispatch, wherever that may be in the world. An order placed in the US could easily prompt a packaging and notification service in Europe, as there are no limits on location when it comes to cloud based messaging services. Users should also expect consistent latency and no replication of messages should ever be necessary when subscriptions are set up correctly.
Being able to send these messages asynchronously and globally means teams can spend more time developing their products and services, and less time worrying about complex coding or programming. This increases efficiency, product or service effectiveness, customer satisfaction – there tends to be a positive domino effect right down the line thanks to effective and asynchronous cloud messaging services.
Integrating Data and Services
Cloud pub/sub comes down to effective service integration. Pub/sub ingests data from the front end services databases or other event-driven services. Cloud data flow or another event-driven service receives the data. The system enriches and orders the data, and moves it forward to the desired end point. Destinations might include data warehouses or data lakes, or a range of other services like notification management applications, or even IoT devices such as wireless sensors.
Cloud pub/sub has a diverse range of different use cases. Generally, they fall into two broad categories. Firstly, pub/sub is very useful for streaming analytics, or ingesting data into an analytical system, for example, your business intelligence suite. Secondly, the other common use for pub/sub is implementing asynchronous workflows, such as the ordering and processing system we looked at in the example above.
IronMQ and Asynchronous Workloads
Of course, asynchronous tasks aren’t just the realm of pub/sub. IronMQ is a highly scalable message queue service, persistent by design and running across multiple clouds and availability zones. Our message queue service uses Rest-Based API for maximum configuration and flexibility. IronMQ is feature-rich and designed for ease of use without you having to add and maintain multiple resources.
Click here to learn more about Messaging Queue use cases.
This site uses Akismet to reduce spam. Learn how your comment data is processed.