Appendix: Summary of algorithms
make a table with each algorithm: synchrony and failure models it assumes, adversary threshold, performance, code complexity
make a table with each algorithm: synchrony and failure models it assumes, adversary threshold, performance, code complexity