Cannonville is a log storage service that you can use instead of a traditional database like MongoDB or MySQL.
When we say log, we specifically mean an ordered, append-only list of immutable objects. In this document, we'll be referring to these objects as events. The log cannot be reordered, events can only be added to the end of it, and items cannot be deleted or altered. Sort of how deposits and withdrawals in a bank account works.
Applications built on top of Cannonville uses the event sourcing pattern for storage. Event sourcing means that you infer your data model from a big log of events instead of persisting the data model. For example, when using event sourcing, you wouldn't store the score of a user - instead you would infer the score from a series of win and lose events. This video gives a good introduction to event sourcing.