Message queueing solutions used to be the one general purpose tool used for all asynchronous application patterns, then along came event streaming as an application model. To support this effectively needed a whole new approach to how messages are handled by the messaging technology. Now the tables are turned and many are wondering if an event streaming solution can be used for all their asynchronous application patterns from now on. But just as message queueing solutions work in a way to optimize for their core use cases, so do event streaming solutions, and these behaviors directly affect the applications that use them. This session picks IBM MQ and Kafka to look at how they compare and, more importantly, differ in their behavior so that you can decide which application scenarios are best suited by each. Spoiler -they're both good in their own way!
1. TechCon 2020
IBM MQ and Kafka, what is the difference?
David Ware
IBM MQ Chief Architect
2. Messaging is essential for building fully connected, efficient and scalable solutions. More now than
ever before
Messaging covers a broad spectrum of requirements
7. Critical data exchange: work that needs to be done
Critical applications demand assured asynchronous interactions
Essential capabilities:
End-to-end
once and once
only Deliveryü Fine grain
messaging
Messages typically represent commands, queries and operations
The message is a way to pass control from the originator of the message to the consumer
8. Event Driven: building scalable microservices
Microservices increases the need for communication. API-based interactions can build fragile and
unscalable tight bonds between components
Topics and
Subscriptions
Publishing and subscribing to events relaxes the coupling of microservices
Events are messages that communicate that something has occurred
Essential capabilities:
9. Event Streaming: the expanding need for messaging
Event Streaming brings data together from disparate sources, enabling even more responsive and
engaging experiences for a wider set of users
Scalable
Subscription
Stream
History
Efficient cloud and analytics applications utilize local decoupled buffers of event data
Essential capabilities:
10. The right tool for the job
Fine grain
messaging
End-to-end
once and once
only Deliveryü Topics and
Subscriptions
Critical data exchange Event driven Event streaming
Apache Kafka
Focused on streaming of events
IBM MQ
Focused on message exchange and transactions
connectivity
Scalable
Subscription
Stream
History
29. Horizontal scaling – workload balance the messages
PRODUCE MESSAGES
T O Q U E U E A
CONSUMER
CONSUMER
IBM MQ Kafka
PRODUCE MESSAGES
T O Q U E U E A
CONSUMER
CONSUMER
CONSUMER
CONSUMER
CONSUMER
30. Kafka Clusters
• A Kafka system is typically made up of
multiple active nodes
• Topics can be partitioned to enable workload
balancing across those nodes, improving scale
and availability of the topics
• Kafka workload balances messages across
partitions, either randomly or based on
application provided context to enable
per-partition ordering
• Each topic partition is active in one broker at a
time
• The messages held in a topic partition can be
replicated to other brokers to ensure data
integrity across failures and automatic
recovery
35. IBM MQ Clusters and workload balancing
PRODUCE MESSAGES
TO QUEUE A
CONSUMER
CONSUMER
CONSUMER
CONSUMER
CONSUMER
• A single running instance of MQ is a queue
manager.
• These can act independently or collectively to
build horizontally scaled solutions.
• An MQ Cluster is a dynamically provisioned
set of queue managers with the ability to
partition queues across them.
• MQ will workload balance inbound messages
from producing applications across each
partition of the queue.
• With MQ’s Uniform Cluster capability, MQ will
workload balance multiple consuming
applications across each queue manager,
ensuring messages are consumed efficiently.
• MQ does not provide simple message ordering
in these topologies
• MQ’s HA technologies provide data integrity
across failures and automatic recovery
54. The right tool for the job
Fine grain
messaging
End-to-end
once and once
only Deliveryü Topics and
Subscriptions
Critical data exchange Event driven Event streaming
Apache Kafka
Focused on streaming of events
IBM MQ
Focused on message exchange and transactions
connectivity
Scalable
Subscription
Stream
History