I like to think of this like a excel spreadsheet. Entity being the row, Attribute being the column, value being what is in the cell, transaction being a serial number and OP being assert or retract. This is a immutable database. Each Transaction gives us a new database, and you can look at the database as of any transaction and have a consistant view of the data. Datomic is a commercial product, but it has inspired quite a few open source projects, particularly when it comes to storing state within single page apps within the browser client.

https://github.com/tonsky/datascript

https://github.com/mozilla/mentat