Topics are the subject of information exchanged within Pubkeeper. Topics are used to describe the information being produced as well what information is to be consumed.


A topic follows the following grammar

topic         = segment *subtopic
subtopic      = segment-delim segment
segment       = segment-txt / wildcard / dwildcard
segment-txt   = *(alpha / digit)
wildcard      = "*"
dwildcard     = "**"
segment-delim = "."
alpha         = "a-z" / "A-Z"
digit         = "0-9"

Pattern Matching

Topics are generally structured in a tree pattern, wherein the most general topic is the segment on the left. With each added segment, the tree increases in specificity. For example:

When creating a Brewer, a fully qualified topic must be specified. However, when creating a Patron you are allowed to use wildcards. A wildcard * will allow any segment-txt between a single segment-delim. A double wildcard ** however will allow any number of subtopics between segment-txt or eol.

With our above example we can examine a couple cases of matching. Wildcard matching:

broomfield.*.*.lab              - match
broomfield.*.temperature.*      - match
broomfield.*.humidity.*         - no match

With double wildcard matching we can see the following:

broomfield.**                   - match
broomfield.**.lab               - match
broomfield.**.*.lab             - match
broomfield.**.temperature.lab   - match
broomfield.**.conference        - no match
broomfield.**.*.*.lab           - no match

results matching ""

    No results matching ""