Introduction

Databases do not exist to store data. They exist to preserve the state of a software system in a reliable, consistent, and recoverable way.

This distinction is subtle but incredibly important.

If applications only needed somewhere to save files, the operating system's filesystem would be enough.

Instead, modern applications constantly modify business information:

These events permanently change the state of a business.

The engineering challenge isn't simply storing information.

The challenge is ensuring that information remains: