Threading wildcards across multiple maps
You can track a data object and other objects produced as a result of its existence. These related objects can be produced asynchronously and feed yet other transformation steps that produce more objects.
You can tag each related object to distinguish the thread of actions taken as a result of the event of the first object that started.
For example, suppose there is a travel reservation system. One component of the travel reservation system accepts travel requests with a proposed itinerary. That component sends out request messages to airlines and hotels for availability. After there is a response from an airline and hotel for that itinerary, a response is produced so that a reservation can be made.
To track a travel request to match it to a reservation as described previously, you can design an example system to have an Availability map component with an input event trigger that accepts the travel requests represented by the -QMN MyManager -QN Itinerary -MID.* input card. The Availability map can send out request messages represented by the 1: AirlineRequest and 2: HotelRequest output cards. The responses can be represented by the -QMN MyManager -QN Airline -MID Air* output card from the airline and the -QMN MyManager -QN Hotel -Htl* output card from the hotel, which can be used as input by the Reservation map component with an input event trigger to produce the-QMN MyManager -QN Response -MID *output card.
Using wildcards, each Itinerary message identifier can be tracked by the same identifier on the Hotel queue, the Airline queue, and the Response queue.