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 source.
Messages can be added to:
- a message queue (ActiveMQ, RabbitMQ),
- or log aggregation system (Flume, Scribe)
when something happens.
Downstream consumers read messages from these systems, and process them or take actions based on the message contents.
Suppose you have a website, and every time someone loads a page, you send a “user viewed page” event to a messaging system. You might then have consumers which do any of the following:
- Store the message in Hadoop for future analysis
- Count page views and update a dashboard
- Trigger an alert if a page view fails
- Send an email notification to another user
- Join the page view event with the user’s profile, and send the message back to the messaging system
A messaging system lets you decouple all of this work from the actual web page serving.
Same as Event-Data Application.