← Inside orch contents

Chapter 3 - Worked answers

1. Startup has several boundaries

The script waits only on readyz, whose fixed success response means the handler is reachable. Agent registration is later/asynchronous, so node ls must show the owned ready node. dev-up starts postgres/server/agent but contains no migration invocation. The separate migrate-up script applies SQL; neither script changes the server's NewMemoryService selection.

2. Host ports are finite per node

Public zero delegates dynamic allocation; each task can receive a distinct host port while both container endpoints use port80. A fixed published port/protocol cannot be bound twice on the same host address. Planner filtering, memory helper behavior and actual Docker collision are distinct paths. Scaling desired replicas does not create a second physical port capacity slot. Inspect assigned task ports and Docker bindings; do not assume resources/labels were checked by Plan on normal service creation.

3. Keep the cleanup executor available

The worker owns the runtime stop/remove actions. Stopping it first can leave containers on the host daemon even after Compose removes the worker service. First ask the still-running server to delete, wait for reports, then inspect exact recorded container IDs. If the server/agent is already gone, use those identities to assess and remove only the disposable experiment's objects. A broad orch.managed filter is insufficient ownership proof on a shared daemon. Preserve PostgreSQL volumes unless intentionally deleting owned disposable data.

4. The constructor is decisive

Database availability is not state ownership. The server constructs MemoryService even with DatabaseURL set. A narrow test creates a named namespace/service through one owned loopback server, saves IDs, terminates only that server, starts a new server with the same configuration, and compares API state. Correlate surviving Docker objects separately if a worker is involved. The authenticated fresh-process record demonstrates memory loss without making this a database-recovery claim; the full Compose walkthrough remains separately scoped.

The upstream commands were checked against source. A source walkthrough and compiled CLI do not by themselves certify the live Compose sequence.

Return to Chapter 3.