# Create, seal, and read a checkpoint Prerequisite: [configuration ownership](posture.md). These entry lessons introduce recording without requiring the complete [Expert persistence guide](../expert/persistence.md). Configure and activate Crystallizer before creating checkpoints. The creation lesson gets a checkpoint ID, lists it, describes it, and confirms that another checkpoint receives a different ID. ## Know which operation completed | Operation | What you can conclude | | --- | --- | | `create_checkpoint(...)` | A checkpoint exists in the running record | | `flush_checkpoint(...)` | The checkpoint is sealed locally; inspect remote delivery separately | | `list_cached_checkpoint_ids()` | Which checkpoint IDs remain in the bounded local cache | | `reload_cached_checkpoint(...)` | A cached record is read back into the record system | | `verify_checkpoint_chain(...)` | A report about the recorded lineage | A bounded cache can evict older entries. A successful local seal does not establish remote durability. Reloading a record is also different from rebuilding its runtime objects: use [restore and cold boot](../expert/restore.md) for that next step. ## The workflow in code These are the core steps from the saved example. Use its complete linked script for all class definitions and setup. ```{literalinclude} ../downloads/03_advanced/17_taking_a_checkpoint.py :language: python :pyobject: main :linenos: ``` ## Runnable examples - [Taking a checkpoint](../examples/advanced/17-taking-a-checkpoint.md) — Advanced 17 - [Loading it back](../examples/advanced/18-loading-it-back.md) — Advanced 18 [All advanced examples](../examples/advanced/index.md) · [Level contents](index.md) · [Full contents](../contents.md) [Canonical page source](https://github.com/Synaptic724/melder/blob/1211e838099a342c9dde48f064b1e772b6060e13/docs/advanced/checkpoints.md)