# Practice 07 · External synchronization

## A. Observe persistence
In checkpoint 07, save two events, reload the same origin, clear the course preference and reload again. Inspect only the course's storage key. Record what is stored and why it is safe synthetic data. Explain why changing the port can make the preference appear absent.

## B. Choose the right home
For each operation, choose render calculation, user-event handler or effect and justify it: compute saved count; validate a submitted practice form; synchronize saved IDs to localStorage; subscribe to window resize; filter events from query. For the subscription, state the matching cleanup. For storage, state the dependencies and failure message.

## C. Transfer
Write a storage parser experiment for unknown input that accepts an array of valid event-ID strings, removes duplicates, and rejects a non-array or invalid member. Test malformed JSON separately from invalid parsed values. Add or inspect a test that makes storage access throw and prove the in-memory UI remains usable. Do not call localStorage.clear.

Completion evidence: reload observations, five classifications, parser cases and failure behavior. [Separate solutions](../solutions/07.html).
