# Diagram of communication pattern between replicas

Can you recommend a good approach how to model a communication pattern between different replicas (nodes, servers, ...), like the one below.

(source: Miguel Castro, Barbara Liskov, et al. Practical Byzantine fault tolerance. 1999)

I have not been able to find anything for TeX, so before I resort to external image, is there a TeX/TikZ/etc solution?

• Welcome to TeX.SX! You can use graphicx to include an external image. Alternatively, this would be quite easy to draw using either tikz or pstricks -- if you search on TeX.SX you can find many examples of how to use both of these packages. (Asking people to draw the image for you is not really a reasonable question to ask on TeX.SX, although you may get lucky!)
– user30471
Oct 16 '17 at 10:26
• Thanks Andrew, I know how to include an image or use TikZ but I was looking for some tool or example of this (because if I try to do this from scratch with TikZ, it will probably take me many hours to get this one picture. Oct 16 '17 at 10:30

The code below, which produces the following diagram, should get you started:

The coordinates are from (0,4) in the top left-hand corner to (5,0) in the bottom right-hand corner (I have made the x-scale 2 to fit your column labels in).

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}

\begin{tikzpicture}[xscale=2]
\foreach \row [count=\r] in {C,0,1,2,3} {
\draw[thick](0,5-\r)node[left]{\row} -- ++(5,0);
}
\draw[dotted] (\c,5)node[above left, anchor=east]{\col}--++(0,-5);
}
\foreach \a/\b/\c/\d in {% arrow from (\a,\b) to (\a+\c,\b+\d)
0.2/4/0.7/-1,
1.2/3/0.8/-1,
1.2/3/0.7/-2,
1.2/3/0.6/-3
}{ \draw[blue,-{Stealth}] (\a,\b)--++(\c,\d); }
\end{tikzpicture}

\end{document}