  Atomic broadcast is a group communication primitive to order messages across
a set of distributed processes. Atomic multicast is its natural generalization
where each message $m$ is addressed to $dst(m)$, a subset of the processes
called its destination group. A solution to atomic multicast is genuine when a
process takes steps only if a message is addressed to it. Genuine solutions are
the ones used in practice because they have better performance.
  Let $G$ be all the destination groups and $F$ be the cyclic families in it,
that is the subsets of $G$ whose intersection graph is hamiltonian. This paper
establishes that the weakest failure detector to solve genuine atomic multicast
is $\mu=(\wedge_{g,h \in G}~\Sigma_{g \cap h}) \wedge (\wedge_{g \in
G}~\Omega_g) \wedge \gamma$, where (i) $\Sigma_P$ and $\Omega_P$ are the quorum
and leader failure detectors restricted to the processes in $P$, and (ii)
$\gamma$ is a new failure detector that informs the processes in a cyclic
family $f \in F$ when $f$ is faulty.
  We also study two classical variations of atomic multicast. The first
variation requires that message delivery follows the real-time order. In this
case, $\mu$ must be strengthened with $1^{g \cap h}$, the indicator failure
detector that informs each process in $g \cup h$ when $g \cap h$ is faulty. The
second variation requires a message to be delivered when the destination group
runs in isolation. We prove that its weakest failure detector is at least $\mu
\wedge (\wedge_{g, h \in G}~\Omega_{g \cap h})$. This value is attained when
$F=\varnothing$.
