This paper presents an updated version of Viewstamped Replication, a replication technique that handles failures in which nodes crash. It describes how client requests are handled, how the group reorganizes when a replica fails, and how a failed replica is able to rejoin the group. The paper also describes a number of important optimizations and presents a protocol for handling reconfigurations that can change both the group membership and the number of failures the group is able to handle.
The replication protocol implemented by TigerBeetle, via this article about the author's experience with rust and zig, respectively.
They point to this architecture doc for TigerBeetle, which includes reasoning for the choice of algorithm and other choices they have made.