How it checks

A watch is a promise to look, not a promise to keep asking. Watch knows several ways to find out whether something changed, and it always takes the cheapest one the source allows.

The order

  1. An event or a webhook — when the thing can push to Watch, nothing is polled at all. An event watch is checked when its OpenVibe.Events event arrives; a webhook watch gets its own signed /hooks/ address and is checked when a delivery reaches it.
  2. The site's own ETag or Last-Modified — if the site gave one, the check carries If-None-Match/If-Modified-Since. A 304 Not Modified means “no change” and no body is read.
  3. A feed — an RSS or Atom feed is read before the page it describes, and the feed's own conditional headers apply.
  4. An API — a JSON endpoint is read the same way, mapped by the watch itself.
  5. A page — the page's text is read, as the whole body or one element.
  6. Your own computer — for something on your home or office network (a router, a NAS, a printer page), one read-only check from your own machine through the OpenVibe Node, only where you turned that on for it.
  7. An expensive browser check through OpenVibe.Run — the last resort. It waits for a browser worker, so a run watch is accepted but not checked yet, and says so on its page.

The manners

What a check state means

StateIn plain words
okRead, and nothing changed since the last reading.
not_modifiedThe site said “not modified” — no body was read.
no_changeThe body was read and was identical to last time.
changedThe value changed.
condition_metThe condition fired (and a notification was emitted).
http_errorThe site answered an error.
timeoutThe site did not answer in time.
parse_errorThe answer could not be read as what the watch expected.
rate_limitedThe site asked Watch to wait.
budget_exceededThe watch's own budget was reached.
skippedThis kind of check is not run yet (or an AI reading is not supported yet). Nothing was fetched.
disabledThe watch is paused, disabled or failing, so it was not checked.

What is honest about it

Start a watch · Back home