Disaster Recovery and Business Continuity Questions
Planning and executing recovery from large-scale outages and disasters. Covers recovery objectives (RTO/RPO), failover and backup strategy, DR runbook automation, and business-continuity planning that keeps critical operations running through major disruptions. The resilience-and-recovery planning discipline for worst-case events.
Design a communications plan for major incidents that affect availability. Cover who needs updates (executives, customers, engineering, legal), how often, what a status-page update should say, and when you escalate from an engineering update to an executive one. Sketch out what the first sixty minutes of communication would look like for a critical outage.
Sample Answer
Direct answer
I'd build the plan around three things: a stakeholder map that separates internal audiences (engineering, executives, legal) from external ones (customers, partners, press) since they need different content and tone, a RACI matrix (who is Responsible, Accountable, Consulted and Informed) so it's unambiguous who is allowed to say what to whom, and a defined escalation threshold for when a routine engineering update becomes an executive one. The first sixty minutes follow a fixed cadence: detect, declare, and get an initial acknowledgment out fast, even before the cause is known, then update on a regular clock rather than only when there's new information.
Structured elaboration
Stakeholder map: internal vs. external.
| Audience | Content | Tone |
|---|---|---|
| Engineering (internal) | Technical symptoms, current hypothesis, what's being tried, what's needed from them | Direct, technical, fast-moving |
| Executives (internal) | Business impact, decision points that need their authority, reputational or legal exposure | Concise, framed around impact and decisions, not implementation detail |
| Legal and compliance (internal) | Anything with regulatory or contractual exposure, review of external language before it ships | Precise, focused on obligations and risk |
| Customers and partners (external) | What's affected, current status, workaround if any, next update time | Plain language, no internal jargon, no speculation about root cause until confirmed |
| Press (external, if triggered) | A single approved statement, routed only through the designated spokesperson | Careful, legally reviewed, minimal |
RACI for the response.
| Role | RACI |
|---|---|
| Incident Commander | Responsible for coordinating the technical response and deciding when thresholds are crossed |
| Communications Lead | Responsible for drafting and publishing every external update; the single pen holding the message |
| Executive sponsor | Accountable for approving customer-facing language once the escalation threshold is crossed |
| Legal | Consulted before any public statement that touches liability, data exposure, or contractual terms |
| Customer support | Informed, and executes pre-approved response templates for inbound customer questions |
Escalation thresholds, engineering to executive. A routine update stays at the engineering level until it crosses a defined line, for example greater than 25% of customers affected, any customer-visible data integrity risk, a duration past 30 minutes with no root cause identified, or any event that spans multiple regions or products at once. Crossing that line triggers the executive sponsor and legal into the loop immediately, not at the next scheduled update.
Cross-timezone coordination for multi-region events. When an incident spans regions, assign a single Communications Lead of record per shift with a documented, timestamped handoff (what's been said publicly, what's pending, what's the next scheduled update time) so a shift change never produces two conflicting messages. All approved language lives in one shared document that both shifts write to, not in separate regional threads.
Status page content. Header with incident ID and affected services, a plain-language impact summary, current status (investigating, identified, mitigating, resolved), a short list of actions taken, and a concrete next-update time rather than a vague "soon."
Escalation flow.
flowchart TD
A[Incident detected] --> B{Meets major-incident threshold?}
B -- No --> C[Engineering tracks it, no exec notify]
B -- Yes --> D[Incident Commander declares major incident]
D --> E[Internal update: scope, IC, ETA]
D --> F[Status page: Investigating]
E --> G{Unresolved at 30 min or revenue-affecting?}
G -- No --> H[Engineering-led updates every 30 min]
G -- Yes --> I[Escalate to executives and legal]
I --> J[Exec liaison approves customer-facing language]
J --> K[Status page and customer comms updated]
H --> L[Resolution and postmortem scheduled]
K --> L
Worked example
First sixty minutes of a critical, multi-region outage at a mid-size payments company:
- Minute 0: Incident Commander declares the major incident based on the on-call alert.
- Minute 5: Communications Lead publishes an initial status page entry: "We're investigating reports of failed transactions. Next update in 15 minutes." No cause is stated yet.
- Minute 15: Internal update to the executive sponsor and legal: current hypothesis, estimated affected percentage, and whether the threshold has been crossed. In this case it has, since more than 25% of customers in two regions are affected.
- Minute 20: Status page updated with the confirmed impact scope, still no cause speculation externally.
- Minute 40: A mitigation is applied; the Communications Lead updates internally and externally with early signs of recovery, careful to say "error rates are declining" rather than "resolved," since a partial rollback can regress.
- Minute 60: If recovery is confirmed, a resolution update is published with a commitment to a postmortem within 72 hours; if not, the next update time is restated and the executive sponsor is briefed on the extended timeline.
Trade-offs and pitfalls
Too frequent updates without new information create alarm fatigue and can look like the team doesn't have control; too infrequent updates erode customer trust faster than the outage itself does. Publishing a root cause before it's confirmed is a common and expensive mistake, since retracting it externally is more damaging than staying vague a little longer. A single point of failure in the plan itself is common: if the Communications Lead is unreachable, there must be a named backup, otherwise the whole cadence stalls. Finally, this is a crisis-communications discipline, not an incident-tooling configuration exercise: the plan should specify who says what to whom and when, not which paging tool routes the alert.
Ransomware has encrypted parts of production, and you're not yet sure whether your backups are clean. Walk through how your continuity plan plays out here: who makes the call to formally declare this a business continuity event, what you communicate to stakeholders while the extent of the damage is still unknown, and how you decide the recovery sequencing (restore vs. rebuild vs. wait for forensics to clear).
Sample Answer
Direct answer
Ransomware forces continuity decisions before anyone has full information, so the plan has to give explicit authority to declare and communicate under uncertainty rather than waiting for forensics to finish. Declaration happens as soon as the trigger conditions are met, not once damage is fully understood; early communication says clearly what's known, what isn't, and when the next update comes, without speculating on cause or scope; and recovery sequencing is decided service by service against the criticality tiers, weighing restore speed against the real risk of reintroducing a still-compromised backup.
Who declares, and when
This follows the same declaration-authority structure as any other event: a named succession with pre-defined trigger conditions. Declaring is a formal, logged governance act, distinct from an engineer opening a SEV1 page: paging on-call gets people looking at the problem, while declaring activates the continuity plan itself, mobilizing the response team, authorizing emergency spend, and starting the plan's communication sequencing. The wrinkle specific to ransomware is that the trigger condition can't require knowing the full scope first, because that knowledge can take days. A workable trigger is "any Tier 1 or Tier 2 service confirmed encrypted or inaccessible due to suspected malicious activity," declared immediately and explicitly scoped as provisional, pending forensic confirmation, rather than held back until certainty arrives.
Communicating under genuine uncertainty
The discipline is separating what's confirmed from what's suspected, and saying so explicitly rather than overstating confidence or going silent until everything is known.
- Internally: which systems are confirmed affected, what's under investigation, and an honest ETA for the next update, not a resolution time nobody can promise.
- Externally and to regulators or legal, where applicable: factual, reviewed statements limited to what's actually known, because a premature claim about scope or root cause can create exposure that outlives the incident itself.
This is a communications-cadence problem before it's a technical one; it uses the same discipline as any crisis communication plan, just under a harder information constraint.
Recovery sequencing: restore, rebuild, or wait
This is a decision made per service, not once for the whole estate, driven by three inputs: the service's criticality tier (how much delay is tolerable), whether a backup for that service can be verified clean before it goes back into production, and whether forensics needs the current state preserved before anything is touched.
- Tier 1 services with a verified-clean backup restore first.
- Anything where backup integrity can't yet be confirmed waits, even if that extends the outage on an important service, because reintroducing compromised data or a re-infection vector turns one event into a second one.
- Rebuilding from a known-good baseline, rather than restoring a possibly-tainted image, is the fallback where clean-backup confidence can't be established in an acceptable window.
This sequencing decision belongs to the same governance structure that owns declaration and tiering, not to whichever team finishes their piece first, because it's a risk trade-off between speed and re-infection, not a technical task order.
Safeguards that need to already exist
None of the sequencing decision above is possible unless backups have integrity that ransomware itself can't reach. In practice that means an offline or logically isolated (air-gapped) copy that an attacker with production access can't also encrypt or delete, immutability or write-once retention on at least one recent backup generation so it can't be silently altered, and a routine of actually testing restores, not just confirming a backup job completed, so "verified clean" is a real, exercised capability during the event rather than a hope. Without these in place beforehand, the restore-versus-rebuild-versus-wait decision collapses to "wait," because there's no way to trust any backup's integrity.
Worked example
A mid-size logistics company detects encrypted files on its warehouse-management and billing systems overnight. The on-call commander declares a provisional continuity event within the hour, under the "confirmed encryption of a Tier 1 service" trigger, without waiting to know if data was exfiltrated. Internal communication at hour one reads: "Warehouse-management and billing confirmed encrypted; scope of other systems still under investigation; next update in 2 hours." Because the backup program maintains an air-gapped nightly copy that predates the infection and its integrity has been tested in prior quarterly exercises, billing (Tier 1, clean backup available) is prioritized for restore first. Warehouse-management's most recent backup can't yet be confirmed clean, so that system is rebuilt from a hardened baseline image instead of restored, extending its outage but avoiding the risk of reintroducing the compromise, a trade-off the commander makes explicitly and logs, rather than leaving it to whichever team is ready first.
Trade-offs and pitfalls
- Waiting for full forensic certainty before declaring or communicating anything feels safer but usually makes things worse: silence gets filled with speculation internally and, if it leaks, externally.
- Restoring quickly from an unverified backup to hit a recovery-time target can cause a second, worse event than the original outage. Speed has to be weighed against verified integrity, not assumed.
- Treating "wait for forensics" as the default for every system ignores the tiering work entirely; some services genuinely can't wait, which is exactly why the criticality tiers exist, to force that trade-off deliberately rather than applying one rule everywhere.
- Backup safeguards, air-gapping, immutability, tested restores, are cheap relative to discovering during a live event that every backup is also encrypted. This is a case where the pre-event investment directly determines whether the sequencing decision has good options at all.
You've just opened a war room for a high-severity disaster recovery event involving network, database, application, and customer-support teams. How do you structure it? Cover the physical or virtual setup, communication channels, what you'd want visible on shared dashboards, and how decisions get documented in real time.
Sample Answer
Direct answer
A continuity command center needs a small decision-making core insulated from a larger information-sharing periphery: one room, physical or virtual, for the people actually making calls; a mirrored read-only stream for everyone who needs situational awareness without adding noise; and a single written record that becomes the account of what happened and why. Getting this wrong, everyone crammed into one unstructured call, turns a recoverable event into a communication failure layered on top of the original disruption.
Physical or virtual setup
- Primary decision room: in person or a video bridge, limited to the commander, function leads, and the scribe.
- Broadcast bridge or channel: a larger listen-only stream for stakeholders who need visibility (support, other business units) without talking over the working group.
- Private channel: reserved for anything sensitive, legal exposure or workforce safety, that shouldn't go into the general information stream.
Communication channels, matched to purpose
| Channel | Purpose |
|---|---|
| Working channel | The decision group's live coordination line |
| Broadcast channel | One-way status pushed to the wider organization at the agreed cadence |
| Escalation channel | A dedicated path to reach executives or backup decision-makers |
Who's in the room
Beyond the technical responders, for anything above a minor severity the room includes a legal representative (contractual and regulatory exposure), a finance representative (cost-of-mitigation trade-offs, insurance notification triggers), and a PR/communications representative (external messaging, media exposure), present from early activation rather than read in after a decision has already been made.
A formal escalation-level structure decides who's paged and required present, rather than leaving it to a judgment call live. For example:
| Level | Meaning | Who's required present |
|---|---|---|
| 1 | Contained, business-as-usual response | Function lead only |
| 2 | Material customer or functional impact | Commander, function leads, comms lead |
| 3 | Enterprise-wide impact | Above, plus legal, finance, PR, and executive sponsor |
What belongs on shared dashboards
The room needs what the business uses to decide, not raw technical telemetry: which business services or functions are impacted and to what degree, estimated time to the next update, current escalation level, open decisions and their owners, and a running list of customer or stakeholder commitments made so far, so nobody promises something twice or contradicts an earlier statement. Deep technical monitoring stays with the technical responders in their own tooling; the war room's shared view is the business-impact layer above it.
Real-time decision documentation
A single scribe, not the commander, not a function lead, maintains one shared, timestamped log for the whole event: each decision, who made it, the reasoning, and what was communicated as a result. This becomes the record for the post-event review and, when legal or regulatory exposure exists, the evidentiary record of due diligence.
Worked example
A regional retailer's order-management platform fails during a holiday sale. The event is declared Level 2, which automatically pages the legal liaison (payment processing is affected) and the finance lead (evaluating emergency vendor spend). The shared dashboard reads "Order Management: severely degraded, roughly 40% of order volume affected, next update in 20 minutes, escalation Level 2," not a stream of raw error-rate graphs, which stay with engineering's own monitoring. The scribe logs the decision to pause promotional email sends at 14:05 with the reasoning ("avoid driving more traffic into a degraded checkout"), so that decision doesn't have to be re-explained in the post-event review.
Trade-offs and pitfalls
- Putting everyone who might need information into the same working channel as the decision-makers drowns the room in cross-talk; the broadcast stream exists specifically to prevent this.
- Bringing legal, finance, or PR in only after a decision is made, rather than having them present from early activation, is the most common failure mode this structure guards against; by the time they're read in, commitments may already be hard to walk back.
- A dashboard full of technical detail feels informative but slows business decision-making by forcing non-technical stakeholders to interpret raw signals. Keep the shared view at the business-impact layer.
- A decision log reconstructed afterward from memory, instead of maintained live, loses the accuracy that makes it useful for both the postmortem and any external accountability.
Design and facilitate a tabletop exercise for a specific scenario, say the loss of your primary data center for several hours. Who's in the room, what injects would you introduce as the scenario unfolds, and what are you actually probing for in how people respond?
Sample Answer
Direct answer
A tabletop exercise is a facilitated, discussion-based drill: participants talk through how they'd respond to a scenario in real time, in their actual roles and using the real plan, without touching production systems, distinct from a functional exercise (partial live actions) or a full-interruption test (an actual failover or live activation). For a primary-data-center-loss scenario, the room needs the same roles that would activate in a real event, a sequence of timed injects that escalate realistically, and a facilitator whose job is to probe decision-making and plan gaps, not to check whether anyone remembers the right terminology.
Who's in the room
Mirror the real activation roster, not a subset: the continuity commander or their designated backup (which also tests the succession structure), function leads for the services most exposed by the scenario, the communications lead, and, since data-center loss carries real business and legal weight, a legal or compliance representative and a finance representative who can speak to emergency-spend authorization. An executive observer is useful for buy-in but should stay observing, not steering.
Structuring the injects
Injects are short, timed pieces of new information dropped into the scenario to force decisions, not a single static scenario dumped up front. Good injects escalate:
- T+0: "Monitoring shows the primary data center has lost power; status unknown." Tests whether anyone moves to declare or the group waits for certainty.
- T+20 min: "Power confirmed out, no restoration ETA from the facility. Two Tier 1 services are now inaccessible." Tests whether the group applies the criticality tiers to prioritize, and whether declaration actually happens.
- T+45 min: "Customer support is fielding a spike in complaints and asking what to tell customers." Tests whether the pre-agreed communications cadence and templates get used.
- T+90 min: "The facility now says restoration could take 6-8 hours, not the 1-2 originally estimated." Tests whether the group re-evaluates its recovery sequencing and communications, or stays anchored to the first estimate.
A genuinely useful alternate scenario, testing different plan assumptions, is a regional outage that takes down authentication and payments specifically rather than a single data center: because those two services sit upstream of almost everything else, this scenario is better at exposing dependency-ordering gaps, which service has to come back first because everything else depends on it, than a straightforward single-site loss.
What the facilitator is actually probing for
Not whether participants can recite the runbook, but whether the plan itself holds up under realistic pressure: does the right person actually step up to declare, or does the room wait for permission that was supposed to be pre-granted; do function leads know their own recovery sequencing without being told; does the communications lead use the pre-built templates or improvise, under time pressure, exactly what the templates exist to prevent; and when an inject invalidates an earlier assumption, does the group visibly adapt or keep executing a plan that no longer fits the facts. The gaps surfaced here are the actual output of the exercise, more than the scenario itself.
Capturing readiness afterward
The exercise should produce artifacts, not just a shared feeling that it went fine:
- A timestamped log of decisions made and by whom, using the same decision-log discipline as a real event, which doubles as practice for that skill.
- A list of plan gaps or ambiguities surfaced by each inject.
- Explicit action items with owners and due dates.
- A short facilitator's readiness note scoring how close the group's real-time behavior tracked the documented plan, and whether any divergence revealed a plan flaw or a training gap.
These artifacts are what make the exercise auditable and feed the next plan revision, rather than the exercise being a one-off team-building event.
Worked example
Continuing the T+90 inject above: told the outage will now run 6-8 hours instead of 1-2, the finance representative in the exercise realizes the pre-approved emergency-spend threshold only covers a 2-hour activation of the backup facility contract, and the group has to work out, live, who can authorize the additional spend. That gap, an approval threshold that never anticipated a longer event, is exactly the kind of finding a tabletop is meant to surface cheaply, before it's discovered for real during an actual multi-hour outage.
Trade-offs and pitfalls
- Making the scenario too easy, a clean, fast resolution, teaches nothing. The value concentrates in injects that force genuine judgment calls and expose where the plan is silent or wrong.
- Running the exercise with only technical responders, leaving out legal, finance, or comms, validates only part of the plan and gives false confidence about the rest.
- A tabletop that never produces a documented action item is a team-building exercise, not a continuity exercise. The artifacts are the point, not just the conversation.
- Reusing the same scenario every time tests memorized responses, not real plan quality. Rotating scenario type, single-site loss, service-specific regional outage, third-party or supplier failure, surfaces different weaknesses each round.
Runbooks and continuity documentation go stale fast once systems, teams, and org structure keep changing. How do you keep them accurate over time? Cover ownership, versioning, and how you'd catch drift before it matters during a real event rather than after.
Sample Answer
Direct answer. Ownership has to be a named role tied to the business function or system the runbook covers, not "whoever wrote it last," with versioning that ties each revision to a specific trigger, not just a date. Catching drift before a real event means testing the runbook during a planned exercise instead of discovering it's wrong while executing it under pressure, paired with a lightweight review trigger whenever something the runbook depends on changes.
1. Ownership
Assign a named owner to every runbook, ideally the person or role accountable for the business function or system it covers, not a shared team inbox and not necessarily the original author, who may move on. Ownership means being responsible for the runbook's accuracy, not personally executing every step during a real event. Make it visible on the document itself (name, role, last-reviewed date) so anyone opening it during an incident can see who to ask if something looks wrong, and so a stale "owner" who's left the organization is an obvious red flag rather than a hidden one. When ownership changes hands, require an explicit handoff with a fresh review as part of the transition, not a silent reassignment.
2. Versioning
Treat runbooks as controlled documents: every change gets a version number, a date, who made it, and why, kept in the document's own change history rather than relying on file metadata or institutional memory. Tie versions to triggers, not just a calendar. A scheduled review is a reasonable baseline, but the more reliable trigger is linking review to the events that actually make a runbook wrong: the system it depends on changes, the org structure around it changes, or a real exercise or incident surfaces a gap. A runbook untouched for eighteen months right after the system it describes was rebuilt is far more suspect than one reviewed on schedule six months ago. Keep prior versions accessible, not just the latest, so a post-event review can tell whether a gap that showed up was already known and fixed but hadn't propagated to whoever was executing, or was genuinely new.
3. Catching drift before it matters
The strongest mechanism is using the runbook for real, on a schedule, inside an exercise (a tabletop discussion or a functional exercise that actually executes some steps), before a live event forces the discovery. A runbook nobody has walked through since it was written is a hypothesis, not a tested procedure. Build a lightweight checklist step into whatever process generates the kind of change that breaks runbooks: when a system change, a supplier change, or an org change is being planned, that process flags which runbooks might be affected, so the review happens close to the change instead of being discovered much later. Track a simple staleness signal across the whole runbook set (time since last review, time since the system or team it covers last changed) and report on it the way you'd report any other risk metric, so an accumulating backlog of unreviewed runbooks is visible to whoever owns the continuity program overall, not discovered runbook by runbook.
Worked example
A payments-processing runbook is owned by the payments platform lead, currently at version 4: v2 added a fallback provider, v3 corrected an escalation contact list after a reorg, v4 followed a functional exercise that found the documented rollback step no longer matched how the system actually rolled back. Six months after v4, the team migrates the payments platform to new infrastructure as part of an unrelated project. Because "infrastructure migration for a system with an owned runbook" sits on that project's change-review checklist, the payments platform lead is flagged automatically and confirms the runbook needs an update before the migration ships, catching the drift as part of the planned change rather than during the next incident. At the next scheduled functional exercise three months later, the team walks through the updated runbook end to end and finds one further step, a monitoring dashboard link, still pointing at the decommissioned infrastructure. That becomes a logged finding and v5.
Trade-offs & pitfalls. A purely calendar-based review cadence catches drift too slowly for a fast-changing system and too often for a stable one; tying review to real change triggers is more work to set up but matches effort to actual risk. Ownership without accountability for staleness (a name on a document nobody ever checks) is barely better than no ownership; the staleness signal has to surface to someone, not just exist. And testing a runbook only during a real event is the worst possible time to discover it's wrong: the exercise programme is what lets a team find the gap on an ordinary afternoon instead of during an actual outage.
Unlock Full Question Bank
Get access to all 20 Disaster Recovery and Business Continuity interview questions and detailed answers.
Sign in to ContinueJoin thousands of developers preparing for their dream job.