Answers are judgments, not facts
An answer is an engine’s judgment of your document, with a probability. It can be wrong, and the numbers on an engine’s page, measured on our conformance suite, may not match your data. Measure accuracy on your own documents with outcomes, and keep a person or a check in the loop wherever a wrong answer is costly.Your data
- Writes. A write is acknowledged only after it is committed to object storage.
- Reads after a write. After a write is acknowledged, a strong query sees the new revision and its attributes. Eventual queries can lag; see tradeoffs.
- Partial updates can be lost in one rare case. If a server fails or loses its connection unexpectedly, two servers can briefly handle the same namespace, for a few seconds at most. During that window, two
patchorappendwrites to the same document from different clients can each apply to the same starting point, and the later one wins, dropping the other’s changes. No error is reported, and a later partial update that sets other fields does not restore them: the document stays wrong until its nextupsert. Planned restarts and deploys hand over cleanly and are not affected, and upserts never are, because they replace the whole document. To rule it out, send whole documents, and to catch any drift, check both sides now and then (see keep your data in sync). - Training. We do not fine-tune the engines we host on your data unless you opt in.
Provenance
Every answer names its document revision, judgment version, engine version, and evaluation id. An answer reused because a change left its context the same keeps the id of the evaluation that computed it, which was for an earlier revision. An answer from a judgment that reads related documents also names its watermark, except afailed one, which keeps its last good numbers without it, and its evaluation lists every related document it read, with its revision.
Engines
- Your judgment runs on the engine version you named until you change it. Jev
currentcannot be pinned: it runs whatever Jev serves now. We detect changes in its behaviour and record them rather than hide them, and each answer’sengine_versionnames the epoch of model behaviour that produced it. Other third-party engines are pinned as far as the vendor allows. - Versions do not change silently. We intend to keep the engine versions we host available. If a version becomes unavailable, requests fail with a named error (
engine_version_unavailable) rather than moving to another version. - Which subprocessor sees your data depends on the engine you choose, and is written on that engine’s page.