An
airhacks.fm conversation with Andrew Schofield, Chief Architect, Event Streams at IBM about:
1982, Dragon 32 and Basic Programming with 12, starting with JDK 1.0,
writing a JMS provider for WebSphere v6,
no ceremony JMS, Apache Kafka considered simple,
why writing a Kafka application is harder than a JMS application,
there is a big architectural difference between Kafka and JMS, or message queuing and event stores, Kafka remembers historical data,
JMS is about fowarding messages, with Kafka it is harder to write conversational systems, clustering singletons is hard, running Kafka on a single node is easy,
"deliver once and only once" is the killer feature of persistent JMS queues, JMS topics are nicer - you can send messages to unknown receivers,
the killer use cases for JMS and Kafka, JMS is good for system coordination and transaction integrity, Kafka is well suited for (IoT) event buffering and re-processability,
2PC, XA and the advantages of middleware,
in distributed transactions everyone has to remember everything, we only need distributed and rock-solid persistence,
kubernetes pods are stateless, challenges of using Kafka, setting up for production can take months for an average Java programmer with JMS background,
restarting Kafka brokers can be challenging, in Kafka you are communicating with the cluster, MQ is a collection of individual queue managers,
in MQ there is a directory of resources which knows where the queues are hosted.
Andrew on
github, and
LinkedIn.