• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Paul Clapham
  • Ron McLeod
  • Bear Bibeault
  • Liutauras Vilda
Sheriffs:
  • Jeanne Boyarsky
  • Junilu Lacar
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Jj Roberts
  • Tim Holloway
  • Piet Souris
Bartenders:
  • Himai Minh
  • Carey Brown
  • salvin francis

Event Stream in Action Question - traditional pub-sub messaging system

 
Ranch Hand
Posts: 218
VI Editor Ruby Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
When looking at Event Streaming, most are talking about Kafka. Is it possible to implement simple event streaming using traditional pub-sub capable messaging system like ActiveMQ, etc.? What are the tradeoffs?
 
Author & Gold Digger
Posts: 7617
6
IntelliJ IDE Java
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In the book, event streaming is introduced with a very simple example that leverages NSQ, a popular distribted pub/sub messaging platform, so yes it is definitely possible.

However, an interesting aspect of event streaming is the ability to process AND re-process it (in different ways by different components at different times), which pub/sub messaging platforms have a hard time achieving since when a message has been consumed by all subscribers/consumers, it's gone forever, unless you store it somewhere and can reinject it later.

So Kafka and Kinesis are popular because the production of messages and their consumption are completely decoupled and messages are kept on the log for a configurable time, which makes it possible for consumers to process and reprocess messages/events as many times as they'd like.
 
Ranch Hand
Posts: 100
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
There are messaging API that support streams.
Spring framework provide some abstractions to work with usual messaging technologies like RabbitMQ (AMQP) and Kafka, but also JMS implementations.

For instance, under the project Spring Cloud you can find GitHub repositories for JMS, and the top trending technologies in event stream processing:
https://github.com/spring-cloud/spring-cloud-stream-binder-jms (ActiveMQ)
https://github.com/spring-cloud?utf8=✓&q=binder&type=&language= (All binders)
This is an article that explains how to use RabbitMQ in reactive applications in Point-to-Point and Publish-Subscribe scenarios: https://www.baeldung.com/spring-amqp-reactive
 
Wirianto Djunaidi
Ranch Hand
Posts: 218
VI Editor Ruby Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank you for both of your response. It is very helpful for me when I want to explore more on the concept of event streaming and able to use tools that I'm already familiar with like AMQ or RabbitMQ before jumping into Kafka. Just a quick browse on the resource, there are so much of Kafka to figure out.
 
Our first order of business must be this tiny ad:
Thread Boost feature
https://coderanch.com/t/674455/Thread-Boost-feature
reply
    Bookmark Topic Watch Topic
  • New Topic