[ https://issues.apache.org/jira/browse/QPID-8361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16931458#comment-16931458 ]
ASF GitHub Bot commented on QPID-8361: -------------------------------------- alex-rufous commented on pull request #36: QPID-8361: [Broker-J] Create a developer guide for Qpid Broker-J URL: https://github.com/apache/qpid-broker-j/pull/36#discussion_r325164143 ########## File path: doc/developer-guide/src/main/markdown/consumer-queue-interactions.md ########## @@ -0,0 +1,144 @@ +# Consumer-Queue Interactions + +This article overviews implementation behind interactions between consumers and queue. + +The main players are + + * Queue - model object providing the messaging queue functionality. + * QueueConsumerManager - queue entity responsible for managing queue consumers + * Consumers - queue consumers + +The `ConsumerTarget` is the broker-side representation of a consuming client. Due to multi-queue consumers +a `ConsumerTarget` has one or more `Consumers` associated with one `Queue` each. It is this `Consumer` that +interacts with the `Queue`. + +## Responsibilities + +A `Queue` is responsible for notification of at least one interested `Consumer` when there is work to be done +(message to consume). + +A `Consumer` is responsible for notification of its `Queue` when it is ready to do some work (for example, consume messages). +When notified by a `Queue` of available work, a `Consumer` MUST try to pull messages of said `Queue` until either +it notifies the `Queue` that it is no longer interested OR there are no more messages available on the `Queue` +(i.e., the Queue does not return a message). + +### Simple Example + + 1. `Message` arrives on the `Queue` + 2. The `Queue` notifies some interested `Consumers` that there is work to be done Review comment: Actually, the message could be delivered to only some of the queue consumers, especially, in situations, where consumers with priorities are used. Thus, the message can go to consumer with the higher priority. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > [Broker-J] Create a developer guide for Qpid Broker-J > ----------------------------------------------------- > > Key: QPID-8361 > URL: https://issues.apache.org/jira/browse/QPID-8361 > Project: Qpid > Issue Type: Task > Components: Broker-J > Reporter: Alex Rudyy > Priority: Major > Fix For: qpid-java-broker-8.0.0 > > > The developer documentation is currently scattered over various Qpid > confluence pages. It could be challenging for people interested in > contributing to the project to find that documentation. A developer guide > could be added to cover such aspects as > * Environment Setup > * Building project > * Running tests > * Releasing > * Architecture overview > The following wiki pages are good candidates for inclusion into a developer > guide: > [High Level > Architecture|https://cwiki.apache.org/confluence/display/qpid/High+Level+Architecture] > [How To Build Qpid > Broker-J|https://cwiki.apache.org/confluence/display/qpid/How+To+Build+Qpid+Broker-J] > [Releasing Qpid > Broker-J|https://cwiki.apache.org/confluence/display/qpid/Releasing+Qpid+Broker-J] > The wiki pages below might be included as well > [Java Coding > Standards|https://cwiki.apache.org/confluence/display/qpid/Java+Coding+Standards] > [Qpid Java Run > Scripts|https://cwiki.apache.org/confluence/display/qpid/Qpid+Java+Run+Scripts] > The developer documentation should be easy to modify, maintain and preview. > Thus, it can be written in markdown or > [asciidoc|https://asciidoctor.org/docs/asciidoc-syntax-quick-reference/]. The > latter is also supported on github. > Potentially, it can be published on Qpid project site as part of release > process. -- This message was sent by Atlassian Jira (v8.3.2#803003) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org