The backend lifecycle refers to the sequence of statuses that a backend managed by Plane passes through, and defines Plane’s responsibilities at each stage.
The statuses are:
scheduled: The Plane controller has chosen a drone to run the backend.
loading: The drone has acknowledged the backend and is loading the appropriate image from the registry.
starting: The drone has loaded the image and is starting the container.
waiting: The container has started. The drone is waiting for it to listen on an HTTP port.
ready: The container is listening on an HTTP port. The drone is ready to route traffic to it.
terminating: The drone has sent a request to terminate the backend. If the request was a “soft” request, the backend may remain in this state for a grace period (by default 10 seoconds) before being hard-terminated.
terminated: The drone has terminated the backend. This is considered the only terminal state.
A backend may skip over some of these statuses, but will only transition to statuses lower in the list, never
higher. Every backend will eventually reach the
terminated state unless the drone responsible for it is
Aside from assigning the initial
scheduled status, the drone to which a backend is assigned is responsible for
reporting all status changes.
Statuses returned from the status API are returned as strings matching the monospace string above; that is, they begin with a capital letter followed by lowercase letters.
There are four ways a backend can be terminated:
- It can exit on its own.
- A call to the terminate API
(this is also how the CLI
- It can become idle for more than
max_idle_secondsseconds, if one was provided when the backend was created.
- It can reach a deadline of
lifetime_limit_secondsseconds after it was created, if one was provided when the backend was created.