The world of messaging systems

Beginner-friendly entry into message delivery systems

Mykola-Bohdan Vynnytskyi
6 min readMar 26, 2023
Photo by erica steeves on Unsplash

Messaging systems serve a vital role in modern software development, enabling communication between different parts of a system, even if they are physically located in different places. There are various types of messaging systems, including messaging queues, pub/sub systems, and event streaming platforms.

In this article, we’ll look at the different types of messaging systems and their benefits, as well as drawbacks.

Pub/Sub systems

Pub/Sub systems are a type of messaging system that enables the communication between different parts of a system. In this system, publishers generate messages and send them to topics, while subscribers receive messages from topics they have subscribed to.

Messages from the topic are pushed to the subscribers

One of the main advantages of Pub/Sub systems is that they allow for the decoupling of components. This means that the publisher and subscriber do not need to know about each other, and can communicate through the topic. This makes it easier to add new components to the system, as they can simply subscribe to the appropriate topics.

However, there are also some disadvantages. For example, they can introduce latency into the system, as messages may need to be processed by multiple components before reaching their destination.

There are many examples of messaging systems in use today, including AWS SNS and Google Cloud Pub/Sub. These systems each have their strengths and weaknesses and are used in a variety of applications, from finance to healthcare to e-commerce.

AWS SNS, or Simple Notification Service, is a fully managed messaging service provided by Amazon Web Services (AWS). It enables developers to send notifications and messages to a variety of endpoints, such as email, SMS, mobile push, and HTTP(S) endpoints.

Google Cloud Pub/Sub is a managed messaging system that is part of the Google Cloud Platform. It provides features such as message ordering and batching and is used by many companies for real-time data processing and analysis.

Overall, Pub/Sub systems are a powerful and flexible type of messaging system that can be useful in a variety of applications. While they may have some drawbacks, their ability to handle large volumes of data and provide fault tolerance make them a popular choice for modern software development.

Messaging queue

A messaging queue is a type of messaging system that stores messages in a queue until they can be processed by a receiver. This is commonly used in situations where a sender needs to send messages to one or more receivers, but the sender doesn’t need to wait for the receiver to process the message before moving on to the next task.

Messages have to be pulled from the queue by the subscribers

One of the benefits of messaging queues is that they can improve the overall performance and reliability of a system. By storing messages in a queue, it becomes possible to decouple the sending and receiving of messages, which can help to reduce latency and prevent messages from being lost or dropped. Messaging queues also allow for more efficient use of system resources, as messages can be processed asynchronously, without the need for synchronous blocking calls.

However, they also have some drawbacks. One potential issue is that message delivery can be delayed if the queue becomes congested or if the receiver is not able to process messages fast enough.

There are many different messaging queue systems available, each with its unique features and capabilities. Some popular messaging queue systems include:

Amazon Simple Queue Service (SQS): A fully-managed messaging queue service provided by Amazon Web Services (AWS). SQS provides reliable and scalable messaging with features like automatic message retries and dead-letter queues.

Microsoft Azure Service Bus: A messaging queue service provided by Microsoft Azure that supports both pub/sub and point-to-point messaging. Service Bus provides enterprise-grade messaging with features like message locking and transaction support.

In summary, messaging queues can provide a reliable and scalable way to process messages asynchronously. They can improve system performance and resource utilization, but can also introduce additional complexity and potential delays in message delivery.

Event streaming platforms

Event streaming platforms are a type of messaging system that stores events in a distributed log, allowing for real-time data processing and analysis. This is often used in situations where data needs to be analyzed as it arrives, rather than being stored and processed at a later time.

The messages are typically pushed to the Event sink from the Event Stream

These platforms provide several benefits. By storing events in a distributed log, they enable real-time data processing and analysis, which can be especially useful for time-sensitive applications. They also support high-throughput data streams, allowing for the efficient processing of large amounts of data.

Buy they also have some downsides. One potential issue is that they can be more resource-intensive than other messaging systems, which may make them less suitable for certain applications.

There are several event streaming platforms available, each with its unique features and capabilities. Some popular event streaming platforms include:

AWS Kinesis: A fully-managed streaming service provided by Amazon Web Services. Kinesis allows for real-time data processing and analysis and supports integrations with other AWS services.

Azure Event Hub: A fully-managed event streaming service provided by Microsoft Azure. Event Hub supports real-time data processing and analysis and provides features like automatic scaling and integration with Azure services.

To summarize, event streaming platforms provide a way to store and process real-time data streams, allowing for efficient and timely data processing and analysis. They offer several benefits, such as high-throughput data streams and real-time data processing, but can also introduce additional complexity and resource usage.

Conclusion

All of the above systems serve as a means of transferring data/messages from one source to another, which can be different components of the same application in a microservice architecture or completely different components of different applications.

The choice of one or another system usually depends only on your needs.

How big is the data?
How many delivery points?
What are the delivery semantics?
Is message delivery sequence important?
Do you need to process data in real-time?

These and other questions must be answered before choosing the right system.

I hope this article has helped you understand the different types of messaging delivery systems and will now make it easier for you to choose the right tool for your needs.

Thanks for your time, please like this article if it was useful for you and subscribe to learn more about different technologies.

See you!

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Mykola-Bohdan Vynnytskyi
Mykola-Bohdan Vynnytskyi

Written by Mykola-Bohdan Vynnytskyi

Data Engineer by day. YouTuber, author, and creator of courses by night. Passionate about Big Data and self-development.

No responses yet

Write a response