  In this paper, we present the design of our LogPlayer that is a component
responsible for fault-tolerant delivery of transactional mutations recorded on
a WAL to the backend storage shards. LogPlayer relies on gRPC for asynchronous
streaming. However, the design provided in this paper can be used with other
asynchronous streaming platforms. We model check the correctness of LogPlayer
by TLA+. In particular, our TLA+ specification shows that LogPlayer guarantees
in-order exactly-once delivery of WAL entries to the storage shards, even in
the presence of shards or LogPlayer failures. Our experiments show LogPlayer is
capable of efficient delivery with sub-millisecond latency, and it is
significantly more efficient than Apache Kafka for designing a WAL system with
exactly-once guarantee.
