Destination Matching and Wildcards
Whenever an application program uses a topic, queue, or map destination, FTL must match that destination to a configured destination. The configured destination contains subscription properties, access control lists, and the name of the persistence store and cluster.
When matching a destination to the configuration, only destinations of the same type are considered. For example, if an application specifies a topic destination, that destination is only matched against topic destinations in the configuration, not queue destinations or map destinations.
If the application’s destination is exactly equal to a configured destination, then it matches that destination.
However, configured destinations are usually wildcards, representing a set of possible destinations. There are two wildcard characters, “>
” and “*
”, with the following semantics. Recall that wildcards may only be used as the last element of a destination.
The wildcard >
by itself matches any destination name (except for destinations reserved by FTL).
When >
is used as the last element, it matches one or more trailing elements. For example: foo.>
matches foo.bar
, foo.boo
, foo.boo.bar
, and foo.bar.boo
.
When used as the last element, the wildcard *
means that any token can be in the place of *
. For example: foo.*
matches foo.bar
and foo.boo
, but not foo.bar.boo
.
When wildcards are used in the configuration, it is possible for the application’s destination to match multiple configured destinations. See Inheritance for more details on overlapping destinations.