Stream - Message Queue System

Event Centric Thinking


Message Queue System is one type of implementation of a messaging system

It's a stream source


  • RabbitMQ,
  • Beanstalkd,
  • ActiveMQ,
  • IBM MQ Series,
  • Tuxedo
  • Amazon SQS


  • If the server fails, the queue persist the message (optionally, even if the machine shutdown).
  • When the server is working again, it receives the pending message.
  • If the server gives a response to the call and the client fails, if the client didn't acknowledge the response the message is persisted.
  • You have contention, you can decide how many requests are handled by the server (call it worker instead).
  • You don't expect an immediate synchronous response, but you can implement/simulate synchronous calls.

You can handle error conditions yourself or leave them to the message queue.

Documentation / Reference

Discover More
Data System Architecture
Concurrency - Model (Design)

list of asynchronous (concurrent/parallel) design producer-consumer, messaging, promise / future
Java Conceptuel Diagram
Java Concurrency - Model

Which concurrency model should you use in @Java? Threads, Actors, Executors, Fork Join, Fibers?
Bird Message
Stream - Messaging System

Messaging systems implements near-realtime asynchronous computation. A messaging system is a fairly low-level piece of infrastructure—it stores messages and waits for consumers to consume them as stream...
Stream Vs Batch
Stream vs Batch

This article talks Stream Processing vs Batch Processing. The most important difference is that: in batch processing the size (cardinality) of the data to process is known whereas in a stream processing,...

Share this page:
Follow us:
Task Runner