One job, many hands.

A relay carries one job through several resources, in order, with gaps. A leg is asked, never taken: each hand says yes, no, or ‘at this time instead’.

The cast.

maker · 4 h leg
printer · 2 h leg
courier · 1 h leg

Hours 06–23 shown.

Each is a World with its own bit strip. A planner World runs the relay.

The story in seven steps.

  1. 01 take in hands

    The planner copies each hand’s busy time.

    maker
    printer
    courier
  2. 02 lay relay

    maker 4h — gap 2 → printer 2h — gap 3 → courier 1h.

    maker · 4 h

    gap 2

    printer · 2 h

    gap 3

    courier · 1 h
  3. 03 windows

    Every start where all legs fit, in one AND over every hand’s free bits: 9, 10, 11, 12.

    starts
  4. 04 ask @ 9

    One ask per leg. Nothing is held until each hand says yes.

    maker
    printer
    courier
  5. 05 sync

    maker held · printer refused · courier held.

    maker
    printer
    courier
  6. 06 delegate leg 1 → printer2

    Ask another hand for that leg, at the same slots. printer2 accepts.

    printer
    printer2
  7. 07 sync

    All held.

    maker
    printer2
    courier

withdraw takes every ask and every held leg back, on every record.

held or busy asked, laid out, or a window refused

Standing, read off the record.

leg statesone per leg
  • unasked
  • asked
  • held
  • refused
  • withdrawn
  • released
relay statethe whole relay
  • mixed
or one of the leg states
possiblethe acts allowed now
  • ask
  • sync
  • withdraw
  • delegate

The hand’s side: the inbox.

accept claims through the hand’s own door, so it can be refused too.

GET/v1/worlds/{w}/askswhat planners want of you
POST/v1/worlds/{w}/asks/{token}/answeraccept · reject · takeBack · moveTo
  • accept
  • reject
  • takeBack
  • moveTo

Across organisations Coming soon

Today a relay’s hands must be in the planner’s workspace.

http
POST /v1/worlds/planner/relays

{
  "name": "order-17",
  "legs": [
    {
      "hand": "maker",
      "length": 4,
      "gapAfter": 2
    },
    {
      "hand": "printer",
      "length": 2,
      "gapAfter": 3
    },
    {
      "hand": "courier",
      "length": 1
    }
  ]
}

The relay endpoints in the reference →