This document discusses snapshots in distributed systems. It begins by defining a snapshot as recording the simultaneous local states of all processes and communication channels. Snapshots can be used for deadlock detection, monitoring systems, and checkpointing distributed databases. Determining a global state is difficult due to the distributed nature of systems with no shared memory or clocks. Consistent cuts that do not cross message orderings can accurately capture a global state. The document then discusses several snapshot algorithms, including Chandy-Lamport for FIFO systems using markers, and Lai-Yang for non-FIFO systems using message coloring.