Lifecycle of a Service
The states a Service, each Order and each line move through, and who holds the next move in each.
A Service has three lifecycles: the product's, set by its Offers; each Order's, for the money; and its fulfillment, for the work. Each work state says who holds the next move.
The product
The Service is draft until a published Offer sells it, and Offer.publish refuses an Offer whose promise its checks cannot back. It is retired when its last Offer is withdrawn, and every placed Order keeps the terms it was bought under.
The money
Payment is authorized when the Order is placed or the Quote accepted, and captured line by line on Order.confirmed. A refund before that Event releases the authorization, so no revenue was counted.
The work
fulfillment | Holds while | Next move | Moved by |
|---|---|---|---|
intake | The inputs are checked against the brief | The buyer, when an input is missing | Order.start |
working | The steps run and their checkers grade them | The Startup | Order.deliver |
delivered | The acceptance window is open | The buyer | Order.confirm, Order.revise, Order.dispute |
revising | A revised line is redone, its window paused | The Startup | Order.deliver |
accepted | The line is confirmed and earned | Nobody | None |
disputed | The remedy runs and the fee is held | The Startup | The contract's remedy |
The clock charges each delay to whoever holds the next move. Deadline clocks has the rule.
The work states live on the Order's fulfillment. A work Thing of its own, such as a catalog audit that callers watch apart from the commercial Order, has status planned.
Open, pause, close
A Service also opens to new Orders, pauses at capacity and closes. Service capacity has the Verbs, with status planned. Offer.withdraw stops new Orders, and every placed Order runs to its end.