Many applications need to record data to some permanent store so it can be retrieved later, such as when you save a document in Microsoft Word or save to a slot in your favorite game. The state of the document or game can be written to the local filesystem or to cloud-based storage. A file or network stream works well when data can be read sequentially or the data and its relationships are easy to store in memory. When data is too big or complex, such as the catalog of items in a retail store or the list of users and permissions in an identity provider, a more advanced storage system is needed.