Topics and Queues

Messaging comes in two flavors: topics and queues, although topics come in two subflavors—durable subscriptions and non-durable subscriptions.

Queues are like FIFO lists (although First-In-First-Out order isn’t guaranteed). The producer sends a message that’s intended for just a single consumer. Once somebody processes the message, that’s it. An example might be an employee reimbursement system, where the employee sends his reimbursement request to the messaging service, and somebody in accounting will process the request. It doesn’t need to go to anybody else at that point. If it turns out that the next step is to send it for management processing, the accounting department might send a message to a different destination—the ManagerApproval queue.

Topics use a publish and subscribe model, where a producer sends a message, and anyone who’s listening as a consumer will get a copy of the message. Works just like a mailing list. If any one subscriber doesn’t get the message, the producer doesn’t care.

A topic subscriber can request a durable subscription if he wants to make sure that he sees all messages, including the ones that accumulated while he was offline, for example. That will almost always be your choice, because you’ll want to get all the messages. Think about it...a non-durable topic subscription would be like you must be home at the time your magazine is delivered, os you simply won’t see it.

Enterprise systems tend to use either queues or durable topic subscriptions. ...

Get Head First EJB now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.