Illustrative case: restoring an order service

Suppose an order service has a four-hour recovery time objective and a fifteen-minute recovery point objective. The outage is declared at 09:00 in an isolated exercise. The database is available at 09:42, but the identity provider configuration is missing. Staff cannot yet use the service. After access and queue processing are restored, they complete a test order at 11:10.

The service became usable two hours and ten minutes after the declared outage. Suppose a verified recovery checkpoint also contains all acknowledged writes through 08:50. That puts the checkpoint ten minutes before the outage, provided the data is complete and correct through that cutoff. Finding one order timestamped 08:50 would not establish this. Record the selected failure, upstream availability and staffing with the result, since the exercise depended on them.

Following the service back to an accepted transaction

Ask the business owner what people must be able to do before the service can be accepted. The sample milestones make that requirement explicit. Each technical step contributes to recovery, and the final transaction checks whether they work together. For an actual exercise, retain the observations from which these timestamps were obtained.

MilestoneEvidence to retain
09:00 — exercise startsThe authorized failure scenario and the service included in the exercise
09:42 — database availableThe backup identifier, restore log and integrity result
10:55 — dependencies restoredResults for identity, secrets, DNS, queues and external integrations
11:10 — service acceptedA test order completes reads, writes and downstream processing, with owner approval
Recovery point — 08:50, ten minutes before outageCheckpoint identifiers and reconciled fields establish completeness through 08:50; later writes have a separate reconciliation plan

Test the difficult dependencies

Restore into an isolated destination. Otherwise, the recovered system may send customer notifications, charge accounts or overwrite production data. Next, check whether responders can reach the backups under the failure conditions being tested. If recovery requires the identity service that is unavailable, the procedure has a dependency it has not resolved. Encryption keys, infrastructure configuration, software artifacts and recovery instructions need the same attention.

Once the dependencies work, examine the recovered state. Counts and selected transactions are useful, but queue replay may have duplicated records. A functioning login page also leaves the actual access controls untested. In a compromise scenario, the newest backup may include unwanted changes. Selecting the recovery point then requires investigation evidence as well as a timestamp.

  • The recovery clock needs a stated start and an observable acceptance condition.
  • Manual work and waiting time contribute to recovery time even when the restore tool is idle.
  • Missing and duplicated transactions require reconciliation before normal processing resumes.
  • Each failed dependency needs an owner and a date for a repeat exercise.

Reconcile transactions before accepting the restore

A restore can have the expected row count and latest timestamp while containing the wrong orders. Keep a separate reference of what the service acknowledged through the selected cutoff. Compare the restored identifiers with that reference, then compare the business fields that make each record correct. Without the reference, a claim of completeness is difficult for anyone else to check.

This example assumes append-only orders. Each accepted order has a unique ID and an amount in integer cents, and must appear exactly once with the expected amount. A mutable application needs a versioned history or another reference consistent with its recovery point. Comparing current rows with an old snapshot would otherwise mix legitimate later edits with recovery errors.

Worked example: same count, missing order

The fictional candidate below fails the integrity check. It is separate from the successful restoration accepted at 11:10 above. All times are on one UTC exercise date: the outage starts at 09:00, the recovery point objective is fifteen minutes, and the selected consistent checkpoint is 08:50. An independently retained test journal lists the acknowledged orders. The restored copy contains A101, A102, A102 and A104.

There are four rows, which matches the reference. The latest acknowledgment is also 08:50 in both copies. However, A103 is missing and A102 appears twice. The duplicate keeps the count correct without restoring the missing order. This candidate therefore cannot establish complete recovery through 08:50, even though the nominal checkpoint is only ten minutes before the outage.

A105 was acknowledged after the checkpoint. Keep it on a separate post-cutoff reconciliation list. Its absence means something different from the loss of A103, but it still requires a decision. Replay, customer communication and acceptance of any unrecoverable data remain business decisions. Choosing a cutoff must not cause the later order to be forgotten.

Order / UTCAmount (cents)Restored result
A101 / 08:10120001: matches
A102 / 08:2075002: duplicate; investigate replay
A103 / 08:3532000: missing before checkpoint; reject
A104 / 08:50180001: matches
A105 / 08:5691000: after cutoff; record for reconciliation

Use a recovery acceptance ledger

Keep the failed copy and comparison results before repairing anything. Otherwise, the repair may remove the evidence needed to explain why the candidate failed. Perform the comparison and any approved correction in the isolated recovery environment, where they cannot notify customers, charge accounts or overwrite production.

  • Counting occurrences before constructing a keyed map preserves duplicates that the map might silently discard.
  • Comparing identifiers in both directions reveals missing and unexpected records; matched identifiers can then be checked field by field.
  • An unexpected record or changed amount calls for investigation. The comparison does not itself authorize deletion or repair.
  • A legitimate test order must still pass through identity, storage and downstream processing before the service is recorded as usable.
RecordEvidence to retain
CheckpointSelected cutoff, backup and log identifiers, time zone and evidence of a consistent recovery point
Reference populationAcknowledged IDs and relevant fields through that cutoff; how the separate reference was captured and checked
Restored populationExact restored export or query, its collection time and artifact identifier
DifferencesMissing IDs, duplicate IDs, unexpected IDs and changed business fields; retain zero results too
Recovery objectivesOutage and usable-service timestamps; selected recovery-point interval and the integrity decision
AcceptanceBusiness transaction result, dependency checks, approver and unresolved reconciliation owner

Keep timing and integrity separate

Complete, correct recovery through 08:50 would meet the example's fifteen-minute recovery point objective with a ten-minute interval. Acceptance at 11:10 is 130 minutes after 09:00, within the four-hour recovery time objective. These are fictional exercise calculations, not measured Cognatory performance. An old last-order timestamp is also different from an old checkpoint: an idle service may have no recent orders even when its recovery point is current.

The ledger checks the stated application-data contract. It does not determine whether the backup still contains unwanted changes, whether every dependency can recover or whether another region can carry the load. Those require trust, access and service checks. NIST recovery guidance supports planned exercises and improvement; CIS Control 11 calls for recovery to a trusted state. Passing this ledger leaves those other recovery questions to be answered.

References: NIST SP 800-184: Guide for Cybersecurity Event Recovery, NIST CSRC glossary: Recovery Point Objective, CIS Critical Security Control 11: Data Recovery.

What this result establishes

A successful exercise shows that the recorded recovery path worked under the recorded conditions. Another failure, region or load may introduce a dependency the exercise never reached. CSF and incident-response guidance place recovery within those operational decisions. Repeat the affected work after a major dependency change, and deliberately vary the scenario when investigating another failure. One successful run cannot establish geographic independence, resistance to every ransomware scenario or capacity during a regional outage.

Sources and reference editions

  1. NIST Cybersecurity Framework 2.02.0
  2. NIST Incident Response recommendationsRevision 3, April 2025
  3. NIST SP 800-184: Guide for Cybersecurity Event RecoveryDecember 2016 final; official publication/history page checked October 4, 2026
  4. NIST CSRC glossary: Recovery Point ObjectiveOfficial glossary checked October 4, 2026; definition refers to SP 800-34 Rev. 1
  5. CIS Critical Security Control 11: Data RecoveryCurrent official Control 11 page points to v8.1; checked October 4, 2026