06 · Operations and improvement
Money, retries, and repair.
The only confirmed operating number is the ceiling. Everything under it is a proposal you can still reject. The risks are written next to the mechanisms, not in a separate appendix.
A second delivery is not a second purchase
Queue redelivery increments a delivery count. A paid attempt is a browser session, a model call, or another metered fetch. If that attempt already settled, the worker reuses the result. If the provider timed out, the reservation stays. That open liability is not a deferral. Another paid call requires fresh admission. If that admission is rejected, the work is deferred and the original observation stays. Deferral does not pretend the page was refreshed.
Unresolved
Budget text proposes at most three deliveries of one job. Interface text proposes a dead letter after five. Both are proposals. Neither has been selected.
Figure
Does a redelivered job get permission to spend again?
Takeaway. A queue delivery is not a paid attempt. An uncertain timeout keeps its reservation. Another paid call needs fresh admission. A rejected admission defers the work.
Text equivalent
- Each delivery increments the delivery count, not the paid-attempt count.
- A settled attempt id returns the stored result and does not call the provider.
- A timeout keeps the reservation. That open liability is not itself a deferral.
- Another paid call requires a fresh admission.
- Rejected admission defers the work and keeps the original observation.
The ceiling and the proposed bands
Confirmed: recurring services may not exceed USD 50 in a month. Proposed: admit paid work while exposure is under USD 35, defer discretionary work from USD 35, stop new unreserved work at USD 40, and never admit the last USD 10. Discretionary work includes browser, model, and replay. The worked two-scraper sketch, 200 listings on each of two sources, expects USD 34.48, sets aside USD 10, and leaves USD 5.52 unreserved. That sketch is not an authorization and not a quote.
Exposure is the greater of the monthly forecast and the liabilities already accounted. A usage report may be exactly 24 hours old and still count as fresh. Before a reservation, exposure must be under USD 40. After the reservation it may equal USD 40. A forecast of 39 against accounted liabilities of 27 defers discretionary extraction. A forecast of 39.99 plus an essential capture of 0.01 can reserve up to exactly 40. Those examples are the proposed gate, simulated in the workbench. They place no provider order.
Figure
What happens as proposed spending approaches the confirmed ceiling?
Takeaway. The only confirmed number is USD 50 a month. The proposed bands admit paid work under USD 35, defer discretionary work from USD 35, stop new unreserved work at USD 40, and never admit the last USD 10.
Text equivalent
- Below a proposed USD 35, bounded paid work can be reserved and admitted.
- From USD 35, browser, model and replay work waits. Essential capture may still be admitted up to USD 40.
- At USD 40, new unreserved paid work stops. Already reserved jobs may finish.
- The last USD 10 is an uncertainty reserve for tax, FX, late usage reports and overruns. Admission does not spend it.
Figure
How is one paid request admitted, deferred, or reconciled?
Takeaway. Exposure is the greater of the monthly forecast and accounted liabilities. A usage report is acceptable at exactly 24 hours. Before admission, exposure must be under USD 40. After a reservation it may equal USD 40.
Text equivalent
- Unconfirmed prices, or a usage report older than 24 hours, pause new paid work.
- Daily reconciliation replaces a reservation with the actual charge once.
- Forecast USD 39 against accounted USD 27 still defers a discretionary extraction.
- Exposure USD 39.99 plus a USD 0.01 essential capture may admit to exactly USD 40.
- Deferred work keeps accepted observations and their original observed time.
Improve the parser. Do not rewrite the sighting.
Repeated fallbacks on fictional Lumen captures become one proposal, imp_0003. It is not published to an issue tracker. The pinned bytes of cap_lum_0310 are replayed with pa_lumen_specgrid@1.0.0. observed_at stays 2026-10-10T03:31:55Z. The new claims go through the same accept path. They do not overwrite dec_0141.
Figure
How does a parser improve without changing when the source was seen?
Takeaway. Repeated fallbacks become one proposal. A new adapter is replayed against the pinned artifact. The original observed time stays. Replay is not a freshness gain.
Text equivalent
- Review case rc_0007 and four Lumen fallbacks group into imp_0003.
- The draft names the evidence, the expected value and a regression fixture, cap_lum_0310.
- The proposed adapter is pa_lumen_specgrid@1.0.0. It is not yet accepted software.
- Replay reads the stored bytes and records a before/after comparison.
- captured_at and observed_at do not move to the replay time.
Rebuild beside history. Fence what you restored.
ADR-004 proposes a snapshot whose rows and cursor W match, a shadow projection with its own cursor and lease, and a cutover that swaps the live pointer before the lease drops. Events from an older history epoch are ignored. They are not relabeled as current. SPK-05 has not been run. The recovery screen in the workbench is a simulation.
The proposed Broadwater pilot outage items use this walkthrough as an acceptance gate. None of those items is passed. The pilot itself is not approved.
Figure
How can a projection be rebuilt without rewriting history?
Takeaway. A snapshot is safe only when its rows and committed cursor describe the same history. The shadow rebuild catches up on a separate cursor. Cutover swaps the live pointer. Events from an older history epoch are ignored, not relabeled.
Text equivalent
- Live writes lock the cursor, then commit facts and the outbox together.
- An operator starts a rebuild. The export pins rows and cursor W under a lease.
- The shadow projection loads the snapshot, then applies the retained tail after W.
- Shadow progress never advances the live retention cursor.
- Cutover swaps the serving generation and the live cursor before the lease is released.
- A restored older epoch is fenced. Those events are terminally ignored.
Risks that stay visible
- The USD 50 ceiling is the only confirmed spend limit. Thresholds can move until Jonathan accepts them.
- A hosted queue, database, or model is not running and must not be started from this package.
- Duplicate delivery is safe only if the inbox and the attempt ledger behave as specified. That is untested on real PostgreSQL.
- Human review hours are not in the USD 50. Ignoring them understates the operating load.
The register itself is in risk-register.md. Budget arithmetic is in budget-controls.md.