Skip to content

States

Where each record stands in its lifecycle, the Verbs and Events that move it, and the states a Startup moves through from idea to scale.

A state is where one record stands: an Order is placed, paid or refunded. Only a Verb or an Event moves it, and every move is on record.

The Startup's states

A Startup moves through the states of its Lifecycle, and each move runs the entry checks of the next state. Startup.advance makes the move and names each check that fails.

How a record moves

Each state lists its ways out. Most are Verbs someone calls, as Order.pay moves an Order from placed to paid.

The rest are Events with no caller, from the payment rail, the clock or the runtime. When an Invoice goes overdue, Invoice.overdue moves its Subscription to pastDue and nobody calls anything.

Three rules hold for every record:

  • update never moves a state. A record changes state only through the Verb or Event its lifecycle names.
  • A record's actions list only the Verbs that move it from where it stands, so an agent that follows them never calls a refused Verb.
  • A terminal state is final. A refunded Order stays refunded, and a new purchase is a new Order.

Some states are computed, never set. A Customer turns atRisk when a renewal goes past due or a charge is disputed, and turns back once the Invoice is paid. No Verb takes a computed state as an input.

Every move emits an Event whose data holds the record as the move left it and previous holds the state it left. A Trigger can wake a Workflow on that Event, or on a record entering a state.

Read one lifecycle

Each Noun page draws its lifecycle and lists it as a table. The Order's reads like this:

StateMeaningMoves to
placed (first)The Customer committed, with the Offer Version and price fixed; nothing is charged yet.paid by Order.pay; canceled by Order.cancel
paidIts amount is settled and its Entries posted; a Service Order’s work runs in fulfillment.fulfilled by Order.fulfill; closed by Order.confirm; canceled by Order.cancel; refunded by Order.refund
fulfilledWhat it bought is granted: Entitlements for software and data, or a shipment for goods.closed by Order.confirm; refunded by Order.refund
closedThe Customer signed off, which earns the Startup its fee.refunded by Order.refund
canceledEnded before fulfillment, with any payment returned in full.None: it ends here.
refundedIts payment returned in full, with the reversing Entries posted; a partial refund keeps its state.None: it ends here.

Every record with states

These records carry a closed set of states, listed from the first. Each name opens its page, which draws the moves where its Noun has a lifecycle.

Action
pending·done·failed·canceled·refused
Agent
standby·seated·paused·retired
Agreement
draft·signed·terminated
Bill
received·approved·paid
Card
active·frozen·closed
Company
forming·incorporated·dissolved
Conversation
open·waiting·resolved
Customer
trialing·activated·atRisk·churned·wonBack
DNS Record
missing·ok·drifted·dangling·removed
Domain
candidate·held·claimed·registered·connected·verifying·live·degraded·expiring·lapsed·renewed·transferred·released
Enrollment
active·paused·exited
Idea
open·pursued
Instrument
outstanding·converted·exercised·canceled
Integration
connecting·connected·needsReauth·paused·revoked
Invoice
draft·open·paid·void·uncollectible
Lead
new·working·nurture·converted·disqualified
Mailbox
warming·active·resting·retired
Mandate
active·paused·revoked·expired
Member Directory
draft·active·failing·inactive
Metric
draft·defined
Noun
draft·published·retired
Order
placed·paid·fulfilled·closed·canceled·refunded
Pay Run
prepared·approved·paid·voided
Post
draft·scheduled·published·withdrawn
Price
draft·fixed·retired
Process
off·on·paused
Product
draft·selling·retired
Quote
draft·sent·accepted·declined·expired·superseded
Registration
invited·requested·waitlisted·registered·attended·noShow
Review
submitted·published·withheld·removed
Role
vacant·filled
SSO Connection
draft·active·failing·inactive
Subscription
active·trialing·pastDue·paused·incomplete·canceled
Team
asleep·awake
Verb
draft·published·retired
Voice
training·ready·retired

Your own states

A Noun the Startup adds gets a lifecycle the same way. Its status values are the states and its Verbs are the moves, and Nouns shows the file that declares both. Records of that Noun then show their state on every Interface and emit an Event on every move.