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.