Tide · Reliability

Delayed facts (notBefore)

notBefore delays a fact until the given time, which makes a timer a row in the ledger. Before that time the fact is delivered to no reflex, and nextDue returns that time.

Reflex
{
  id: 'show.reminder',
  intent: 'Two hours before the show, remind the member.',
  on: { fact: { signal: 'show.soon' } },
  effect: {
    name: 'mail.send',
    input: {
      to: { $ref: '$.fact.payload.member' },
      kind: 'reminder',
    },
  },
}
Fact, ingested Saturday 10:05
{
  kind: 'signal',
  name: 'show.soon',
  payload: { member: 'mia' },
  at: 1792829100000,
  notBefore: 1792855800000,
}
notBefore, Vienna time
'2026-10-24 17:30'
advance, call by call
Next due, Vienna time
'2026-10-24 17:30'
Fact delivered, mail sent
{ offered: false, mailed: [] }
Output matches the expected value

Runs in this page on the installed package. The input and the expected output are defined by the example.