Recovery Objective
A Recovery Objective sets how much data one Capability may lose and how fast it returns, proven by a restore drill on a cadence.
Properties
| Property | Type | Required | Description |
|---|---|---|---|
recoveryPoint | string | required | The most data a failure may lose, as a window such as 15m. |
recoveryTime | string | required | How fast the Capability returns after a failure, as a window such as 4h. |
drillEvery | string | required | The restore drill cadence, such as quarterly. |
lastDrill | datetime | When the last restore drill met both objectives. |
Object
{
"$id": "https: //api.sb/ routewise.dev/ recovery-objectives/ recovery_objective_1",
"$type": "RecoveryObjective",
"recoveryPoint": "Example recovery point",
"recoveryTime": "Example recovery time",
"drillEvery": "Example drill every",
"lastDrill": "2026-10-22T12: 00: 00Z"
}Relationships
- A Recovery Objective has one Capability: the Capability the objective restores.
capability, inverserecoveryObjectives. - A Recovery Objective has one Startup: one Recovery Objective for each Capability the Startup depends on.
startup, inverserecoveryObjectives.
Verbs
createCreates a Recovery Objective.POST /{namespace}/recovery-objectivesgetReturns one Recovery Objective by id.GET /{namespace}/recovery-objectives/{id}listReturns Recovery Objectives, newest first, one page at a time.GET /{namespace}/recovery-objectivesupdateChanges the given properties of a Recovery Objective.PATCH /{namespace}/recovery-objectives/{id}deleteDeletes a Recovery Objective; its history is kept.DELETE /{namespace}/recovery-objectives/{id}drillDrill restores one Capability’s records into an isolated namespace and records whether the restore met both objectives.POST /{namespace}/recovery-objectives/{objective}/drill
Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.
| Operation | owner | admin | member | viewer |
|---|---|---|---|---|
RecoveryObjective.create | Yes | Yes | Yes | No |
RecoveryObjective.get | Yes | Yes | Yes | Yes |
RecoveryObjective.list | Yes | Yes | Yes | Yes |
RecoveryObjective.update | Yes | Yes | Yes | No |
RecoveryObjective.delete | Yes | Yes | Yes | No |
RecoveryObjective.drill | Yes | Yes | Yes | No |
Call it
Drill the latest recovery objective.Example
Payments carries a Recovery Objective of 15m for data and 1h for service, drilled quarterly. The last drill restored the namespace in 22 minutes, so both objectives held.