A merge node is a type of control node that has two or more incoming flows and a single outgoing flow. It is used to re-unite alternate flows that originate from one or more decision nodes. The merge node accepts a token on any one (and only one) of the incoming flows and passes it to the single outgoing flow. Tokens cannot be detained at the node, nor are they copied; they are passed onto a single outgoing flow.
A merge node provides a way to re-unite flows that originate from one or more upstream decision nodes. Tokens can arrive at any one (but only one) of the incoming flows and regardless of which flow the token arrives on it will flow out via the single outgoing flow. A merge node should not be confused with a join node (which can have tokens arriving on multiple incoming flows), as a token can only arrive at the node via one of the incoming flows. In our daily lives we see examples of this: when a passenger arrives at an airport they can choose one of a number of check-in counters (the choice is represented by a decision node). Regardless of which check-in counter they choose, when they arrive at the gate each individual passenger will pass through a single air bridge and onto the aircraft (the merge is represented by a merge node). It is easiest to visualize this mechanism by thinking of each passenger individually.
All flows regardless of whether they are incoming or outgoing must be either all control flows or all object flows.
A merge node is a type of control node and therefore can only manage a single type of flow. So all incoming and outgoing flows must all be of a single type: either control flows carrying control tokens, or object flows carrying data or object tokens, but not a mixture of both types of flows.
A decision node is related to a merge node as they are paired elements. A merge node reunites incoming flows into a one flow offering a single token to the outgoing flow; a decision node splits an incoming flow into a number of outgoing flows (only one of which receives a token).
A join node is related to a merge node as they are often confused with the each other. They have very different semantics. While both the merge node and the join node have a number of incoming flows one outgoing flow, a merge node receives tokens from one of a number of incoming flows and offers tokens to one (and only one) outgoing flow whereas a join node reunites concurrent flows by accepting tokens from all incoming flows and offers a single token to the outgoing flow.
A junction pseudostate is related to a merge node as they are often confused with each other. They have different semantics and are used in different diagrams. A junction pseudostate is used in state chart diagrams whereas a merge node is used in activity diagrams and interaction overview diagrams. A junction reunites transitions whereas a merge node reunites flows, which are conduits through which tokens flow.
An n-ary association is related to a merge node only because it has the same fundamental shape - a diamond with three or more attached lines. Semantically they are not related. The lines in the n-ary associations are associations representing structural relationships, whereas the incoming and outgoing lines (flows) in a merge node are conduits through which tokens flow. They also appear in different UML diagrams. The n-ary association is used in the same diagrams where binary associations are found, such as class, component and deployment diagrams, whereas the merge node is used in activity and interaction overview diagrams.