  A cycle cover of a bridgeless graph $G$ is a collection of simple cycles in
$G$ such that each edge $e$ appears on at least one cycle. The common objective
in cycle cover computation is to minimize the total lengths of all cycles.
Motivated by applications to distributed computation, we introduce the notion
of \emph{low-congestion} cycle covers, in which all cycles in the cycle
collection are both \emph{short} and nearly \emph{edge-disjoint}. Formally, a
$(d,c)$-cycle cover of a graph $G$ is a collection of cycles in $G$ in which
each cycle is of length at most $d$ and each edge participates in at least one
cycle and at most $c$ cycles. A-priori, it is not clear that cycle covers that
enjoy both a small overlap and a short cycle length even exist, nor if it is
possible to efficiently find them. Perhaps quite surprisingly, we prove the
following: Every bridgeless graph of diameter $D$ admits a $(d,c)$-cycle cover
where $d = \tilde{O}(D)$ and $c=\tilde{O}(1)$. These parameters are
existentially tight up to polylogarithmic terms. Furthermore, we show how to
extend our result to achieve universally optimal cycle covers. Let $C_e$ is the
length of the shortest cycle that covers $e$, and let $OPT(G)= \max_{e \in G}
C_e$. We show that every bridgeless graph admits a $(d,c)$-cycle cover where $d
= \tilde{O}(OPT(G))$ and $c=\tilde{O}(1)$. We demonstrate the usefulness of low
congestion cycle covers in different settings of resilient computation. For
instance, we consider a Byzantine fault model where in each round, the
adversary chooses a single message and corrupt in an arbitrarily manner. We
provide a compiler that turns any $r$-round distributed algorithm for a graph
$G$ with diameter $D$, into an equivalent fault tolerant algorithm with $r\cdot
poly(D)$ rounds.
