Synthetic Industry

Troubleshooting guide · updated 2026-10-11

Yesterday's supplier feed finishes last: keep older data from replacing a newer version

Compare source-issued versions at the publication boundary and distinguish a late old feed from an authorised correction to the current one.

Use source ordering, not download time

In the authored example, supplier versions increase from 41 to 42. A delayed version 41 is stale after 42 has been accepted even if 41 finishes later. This rule requires a trustworthy source-issued ordering contract within the same supplier and coverage. A timestamp in a local filename, a hash or a download completion time does not establish that contract.

  • A hash can identify content equality; it is not an age ordering.
  • Equal version with different content is a conflict under this example policy.
  • If the source has no comparable version, hold ambiguous publication for the authorised operator instead of guessing.

The gate and the changes must agree

PostgreSQL permits a conditional ON CONFLICT update, but a row-level condition alone does not make a multi-row supplier snapshot safe. The authoritative version check, all covered stock/price changes and recorded acceptance must share the agreed publication boundary. This is an engineering requirement to be designed and reviewed, not a SQL recipe to paste into production.

  • Recheck freshness at publication, not only when the file is fetched.
  • Do not update child rows after a rejected version gate.
  • An authorised correction with the same version needs an explicit correction policy, not a silent exception.

Acceptance includes reversed completion

The synthetic contract accepts 42 after 41, then rejects the late 41 without changing any values. Repeating 42 with identical content is a no-op; repeating 42 with different content is held. An unknown source version is also held. The local example tests these decisions only; it does not execute concurrent transactions or prove a database publication design.

  • Inspect unchanged state after every rejected or repeated feed.
  • A passing sequential fixture is not a concurrency or recovery test.

Priced enquiry and non-fit

A local deterministic freshness-decision bug may fit fix-one-bug-with-regression-test, from £295 after bounded synthetic reproduction and a fixed quote. A single preview interaction showing accepted, stale and conflicting versions may fit ship-one-feature-with-running-preview, from £750 with its existing safe preview conditions. A new atomic publication architecture, live concurrency test, feed connector or database/data migration needs separate scope; neither starting price buys that project. Send invented versions and expected dispositions, not private feed payloads, code or credentials. Prices are untested and payment follows agreed checks and sign-off.

Sources and limits