A correlation key is a set of variables that is used to identify a process instance in order to route the messages that apply to it.
For example, during a flight booking process on the Web, a registered client may have put a ticket in his wish list, but needs further information before booking it. When he comes back to his wish list, the correlation key allows the retrieval of his flight ticket, so he can proceed to the payment.
A correlation key can be created in a choreography diagram with any orchestration languages.
It is associated with a process implemented by an operation (see Operations (BPM)). Depending on the operation type, a process (activity) can have one or two correlation keys:
The Dependencies tab of the correlation key property sheet displays the list of the processes that use the correlation key for reception of messages and the list of the processes that use the correlation key for emission of messages.