Skip to content

Implement the absent-server behaviour and the way back #45

Description

@iderex

A server that is gone is a different condition from a server that is slow, and it
has a recovery the core can drive on its own rather than making the client poll.

What this produces

The state the core reports when the server is unreachable, distinct from every
slow state.

What is still available: everything cached, marked with its age, so that a client
can show a real library that says plainly it is not current.

The recovery. The core retries on its own schedule, bounded, and reports when the
server answers again, so the client does not have to poll or ask a person to pull
to refresh.

What a write attempted while the server is gone does, which is the queue in #47.

Done when

A test takes the fake server away and proves cached content is still served
with its age, proves the unreachable state is distinct from every slow state,
and proves the core reports recovery by itself when the server returns. Blocked
on #7, #43, and #102 for the clock the wait before a recovery attempt is
measured against.

Metadata

Metadata

Assignees

Labels

architectureShape of the core: boundaries, interfaces, contractsblocked-on-issueWaits on another open issue on this board

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions