# Loading a whole world back **🔵 Expert · Lesson 24** SEAL A WORLD, THEN UNFOLD IT AGAIN. Expert 01 taught the pod-boot ORDER; expert 09 taught what crosses the wire. This is the round trip itself - checkpoint a live world, put it in the cache, and unfold it back into the runtime. THE FIVE VERBS, IN ORDER create_checkpoint(profile, description) -> a ULID id describe_checkpoint(id) -> what got captured flush_checkpoint(id) -> seal it into the cache reload_cached_checkpoint(id) -> cache back into ledger load_checkpoint(id) -> UNFOLD into the runtime Only the last one touches the live world. The first four move a record around; `load_checkpoint` is the boot verb. The lesson retires its original root before replay so the saved root name and binding identities are available. The recorder itself stays alive. A RESTORE IS NOT A RESURRECTION, AND THE REPORT SAYS SO `load_checkpoint` hands back a RestoreReport carrying: status did it complete built counts how many of each kind came back shortfall entries what could NOT be rebuilt identity translation map OLD id -> NEW id That last field is the one to understand. Rebuilt objects get NEW identities - the world that comes back is equivalent, not identical - and the map is how you follow one thing across a boot. Anything holding a raw pre-restore id and expecting it to still resolve is holding a stale address, and the map is the only honest way to translate it. SHORTFALLS ARE REPORTED, NOT HIDDEN A spell whose class can no longer be imported, a module that moved, a binding whose target is gone - each becomes a shortfall ENTRY rather than a silent omission. Expert 18's law at the boot grain: a restore that quietly dropped what it could not rebuild would look identical to a world that never had those things, and the second invites everyone downstream to invent. CHECKPOINTS ACCUMULATE; THEY NEVER OVERWRITE Every `create_checkpoint` mints a new ULID and `list_checkpoint_ids()` returns them in exact ledger creation order. There is no "the checkpoint" - there is a history of them, and an id is the whole handle. AND THE OPERATOR'S ONE-CALL VERSION md.CrystallizerBootstrap() .with_crystallizer_configuration(...) .with_profile(...) .with_pull_remote(False) .bootstrap() That is expert 01's flow: the same steps in a fixed sequence, for the case where you are starting a process rather than inspecting a round trip. Note `with_preflight_gate` is an ACCEPTED NO-OP - the knob still exists and does nothing, and its own docstring says so rather than pretending. ## Before you run Use the [Expert guide](../../expert/index.md) for prerequisite concepts. Run from a checkout with Melder installed and Python 3.14 free-threading selected. The collection download includes the level's local helper modules. ## Run the saved script ```bash python UX_and_AIX_experiences/04_expert/24_loading_a_whole_world_back.py ``` ```powershell py -3.14t UX_and_AIX_experiences/04_expert/24_loading_a_whole_world_back.py ``` {download}`Download this collection <../../downloads/expert-examples.zip>` · [Source on GitHub](https://github.com/Synaptic724/melder/blob/1211e838099a342c9dde48f064b1e772b6060e13/UX_and_AIX_experiences/04_expert/24_loading_a_whole_world_back.py) ## Public surface md.Crystallizer create_checkpoint / describe_checkpoint / flush_checkpoint / list_cached_checkpoint_ids / list_checkpoint_ids / reload_cached_checkpoint / load_checkpoint, and md.CrystallizerBootstrap ## Code ```{literalinclude} ../../downloads/04_expert/24_loading_a_whole_world_back.py :language: python :linenos: ``` ## Check the outcome The script contains its own assertions or demonstrated refusal paths. Run it to evaluate those checks against your installed version. The code above is taken directly from the saved file; no run output is invented here. [More expert examples](index.md) · [Level guide](../../expert/index.md) ## Related guides - [Restore and cold boot](../../expert/restore.md) ## API contracts - [Crystallizer](../../reference/api/persistence/crystallizer.md) - [CrystallizerBootstrap](../../reference/api/persistence/crystallizerbootstrap.md)