Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: Future
    • Fix Version/s: 0.19
    • Component/s: C++ Broker
    • Labels:
      None

      Description

      Some users need browse-only functionality. For example, messages represent the an ongoing history of events, all of which are relevant to newly joining consumers. The messages should remain unconsumed and available to newcomers until they are outdated by time-to-live rules, or the queue is destroyed.

        Activity

        Hide
        michael j. goulish added a comment -

        Here is the proposed functional specification.

        proposed functional specification
        {
        purpose

        { Some users need browse-only functionality. For example, messages represent the an ongoing history of events, all of which are relevant to newly joining consumers. The messages should remain unconsumed and available to newcomers until they are outdated by time-to-live rules, thrown away by a ring-queue, or the queue is destroyed. }

        strategy note

        { ACL and browse-only-queue solutions to this problem are both possible. But right now we should prefer a browse-only-queue solution, because (1) it would satisfy the current customer's requirements, and (2) the ACL functionality requires a complete overhaul. }

        user interface
        {
        1. extend x-declare{arguments:{}} in our addressing
        to include 'browse-only'.

        2. queues that are declared "browse-only" will allow
        subscribers to access queues, and 'acquire' messages
        normally – but that 'acquisition' in this queue would
        result in only a browse. The message would remain.

        3. no effect on ACLs.
        }

        testing

        { As user mick, use standard command line tools to: 1. declare a queue with browse-only argument. 2. use standard command line tool to send N messages to the queue. 3. use standard tool to 'consume' messages from queue. Confirm that N messages are read. 4. Repeat step 3 at least once, and confirm that same N messages are again read every time. ( They are not consumed. ) 5. Set TTL on messages and confirm that it removes messages from queue. 6. Confirm same behavior across all queue types. }

        }

        Show
        michael j. goulish added a comment - Here is the proposed functional specification. proposed functional specification { purpose { Some users need browse-only functionality. For example, messages represent the an ongoing history of events, all of which are relevant to newly joining consumers. The messages should remain unconsumed and available to newcomers until they are outdated by time-to-live rules, thrown away by a ring-queue, or the queue is destroyed. } strategy note { ACL and browse-only-queue solutions to this problem are both possible. But right now we should prefer a browse-only-queue solution, because (1) it would satisfy the current customer's requirements, and (2) the ACL functionality requires a complete overhaul. } user interface { 1. extend x-declare{arguments:{}} in our addressing to include 'browse-only'. 2. queues that are declared "browse-only" will allow subscribers to access queues, and 'acquire' messages normally – but that 'acquisition' in this queue would result in only a browse. The message would remain. 3. no effect on ACLs. } testing { As user mick, use standard command line tools to: 1. declare a queue with browse-only argument. 2. use standard command line tool to send N messages to the queue. 3. use standard tool to 'consume' messages from queue. Confirm that N messages are read. 4. Repeat step 3 at least once, and confirm that same N messages are again read every time. ( They are not consumed. ) 5. Set TTL on messages and confirm that it removes messages from queue. 6. Confirm same behavior across all queue types. } }
        Hide
        michael j. goulish added a comment -

        implemented in rev 1382991.
        auto-test checked in – rev 1384851.

        Show
        michael j. goulish added a comment - implemented in rev 1382991. auto-test checked in – rev 1384851.
        Hide
        michael j. goulish added a comment -

        impl in rev 1382991
        auto-test in rev 1384851. (oops!)

        Show
        michael j. goulish added a comment - impl in rev 1382991 auto-test in rev 1384851. (oops!)

          People

          • Assignee:
            michael j. goulish
            Reporter:
            michael j. goulish
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development