Appearance
Reliability
A turn that sends e-mail or deploys code must not run twice, and must not be lost when Wi-Fi drops. Crewdesk is built around that.
The turn journal
Every event of a turn (each piece of text, tool start and finish, card and file) is numbered and kept in a journal on the Hub.
- Reconnect. If the stream goes quiet (about 45 seconds), the client reattaches and continues from the last event it saw. Nothing is replayed twice and nothing is missed.
- One message, one turn. A message sent twice (a retry after a timeout, a double click) becomes one turn.
- Restarts. A turn interrupted by a server restart is marked as such, not left hanging.
- Proposals survive. A pending approval card survives restarts of the server and the client.
Write once
A write runs once. Reconnecting, retrying, or answering a card twice never runs it again: the Hub records each write before it runs and returns the recorded result to any repeat.
Fallback
If the brain on AMP fails before it has shown you anything, the Hub runs the turn with its own copy of the brain, so you still get an answer.
Schedules
The Hub checks for due schedules continuously; only one process claims each run, and it moves the schedule to its next time before starting it, so a run isn't started twice. A run missed while the server was down is reported but doesn't count as a failure.
Health
The server reports its health as ok, degraded or down, checks its database schema at startup, and turns problems into alerts for its operator.
Large files
Attachments and app files are stored on disk and uploaded in resumable chunks.