tl;dr:Some basic concepts that Git shares with application DBs: (1) Data is persisted to disk. (2) Queries allow users to request information based on that data. (3) The data storage is optimized for these queries. (4) The query algorithms are optimized to take advantage of these structures. (5) Distributed nodes need to synchronize and agree on some common state.