2.8 KiB
Resource-cost exchange operations
This runbook operates contract v0.1 between fin-hub and resource-control. The
authority matrix remains in fin-resource-authority-contract-v0.1.md.
Compatibility and delivery
- Producers pin
schema_version. A consumer rejects an unknown version; it must not discard fields or reinterpret a new version as v0.1. - Delivery identity is
financial_fact_idfor booked facts andrecord_idfor planning evidence. Redelivery is idempotent; different content under the same ID is rejected. - Corrections and forecast/allocation revisions are append-only and point to the current predecessor. Consumers retain superseded records for audit and variance work.
- Resource joins use an explicit mapping from stable
financial_fact_idto a resource-control-ownedresource_id. Provider labels, filenames, and prose are not resource identity. For the current compute case the target ID isresource:hosteurope:railiance01. - Currency conversion is never implicit. Reconciliation is performed per currency and effective period.
Reconciliation procedure
For each delivery window, record and compare on both sides:
- current booked-fact IDs, count, effective totals per currency, correction edges, and source-evidence references;
- planning record IDs/count, current revisions, forecast totals, allocation fact references, and explicit residuals;
- the join set and missing resource IDs, without copying resource authority into fin-hub;
- returned variance/optimization IDs and provenance, confirming none was inserted as a second booked financial fact.
Duplicate replay must leave all counts and totals unchanged. A correction must replace the effective total exactly once while preserving the predecessor.
Operator visibility
exchange_health reports only bounded metadata and amounts. It surfaces:
- rejected planning deliveries by claimed ID and safe validation metadata;
- booked facts lacking both a resource binding and cost attribution;
- current forecasts whose effective period has ended; and
- allocations that reference a missing current financial fact.
Rejected payload bodies are not retained. Only a content fingerprint, claimed record ID/type, safe validation locations/codes, delivery count, and timestamp are stored. Resolve error-severity issues before reconciliation; warnings need an explicit disposition. Retain the health report with the round-trip evidence.
Upgrade and review
Add a new schema alongside v0.1, publish fixtures, and dual-run it. Compare canonical IDs, counts, money totals, corrections/revisions, joins, exceptions, and provenance. Resource-control and fin-hub owners jointly approve the compatibility window and removal date. Roll back by selecting the prior pinned producer/consumer version; never rewrite existing evidence to downgrade it.