Chapter 6 - Worked Answers
1. Name active owners
GitOps, cron, scheduler, rollout, and node monitor are all constructed and run around the same memory object. Usage snapshots and retention pruning add separate periodic activities; DNS is conditional. Immediate creation is different: CreateService calls reconcileServiceTasksLocked inside its mutation critical section and produces assigned tasks before a periodic scheduler tick. The existence of that ticker cannot prove every creation used Plan's checks.
2. Explain local atomicity
Image resolution, initial validation, admission, normalization, and revalidation occur before locking. Namespace lookup, duplicate-name detection, secret/registry existence, quota checking, service map creation, version storage, immediate task reconciliation, and event append occur under the mutex. This coordinates concurrent users of this MemoryService instance. It does not create a durable database transaction or include a Docker operation in the critical section. A process exit can discard all those completed map changes.
3. Bound the restart claim
The harness created the container directly, then authenticated a status report containing its exact ID for the assigned task. That report established a server-visible association before restart. No upstream Runner created or adopted the container. The second binary lost its task maps while Docker retained the same object. To claim automatic adoption, a separate real-agent experiment would need to show how a returning agent identifies surviving containers, reconnects their task identities, and handles missing server intent safely. The current record does not contain that behavior.
4. Reject configuration-only durability
The active constructor creates MemoryService regardless of DATABASE_URL. Optional schema checking and migration commands are separate database operations. The measured second process recreated only default namespace and had no prior services, tasks, nodes, or custom namespace. Recovery therefore needs a durable selected implementation plus complete reads/writes and reconstruction, not simply a URL. Restored tables cannot populate maps through a code path that never reads them. Avoid recreating competing runtime work while surviving containers remain unexplained.
Return to Chapter 6.