What is it about ?
The quote is from section 15.2.3.3, which explains that there are two kind of activity edges. More precisely, it is about ObjectFlow edges. These passes objects as tokens.
One of the main differences, between an object flow and a normal control flow in the activity model, is that you may use object nodes (see section 15.4.3.1,). These show which kind of object is created and can accumulate (due to synchronisation constraints) object tokens generated by a source.
So what does it mean ?
If multiple tokens are offered at the same time, then the tokens are
offered in the same order as if they had been offered one at a time
from the source
is to be understood as:
Even if there's an object node in-between that could accumulate
several tokens generated by a source, the object tokens are passed to
the target one by one as if they were coming directly from the source
and in their initial order.
Example of why it's important
Here is an example of use. In the midle of the linked example diagram, you can see 2 object nodes (product key
and C2V key
) that are connected to a join node, which is connected to an activate product
activity.
Possible scenarios:
- Imagine you have a
request activation
. The flow works smoothly on both sides of the diagram, and the two required object tokens are ready at the gate: both of them will be passed together to the activate product
activity. (By the way, this is different from the usual control flow edges where 2 tokens would be consumed as input but only one token would produced as output of the gate).
- Now imagine 2 consecutive
request activation
. Suppose now that the customer side works ultra-fast and immediately produces their C2V key
: none of them can pass the gate because no product key
is available. In consequence, both tokens will wait. Then, the order management processes the first request, and produce a first product key
. Thanks to the importance sentence that you've quoted you can be assured that this first product key
will be processed together with the first C2V key
, and not with a random one that would be ready but would be related to another request.