{
 "schema": "aiblocks-page/1",
 "id": "agency-engineering-database-reliability-engineer",
 "type": "agent",
 "name": "Database recovery planner",
 "summary": "Check that your database can be restored and will fail over safely. Get a backup test plan, a failover drill and a safe way to change tables.",
 "headline": "Database recovery planner",
 "subhead": "Describe your database, your backups and how much data loss and downtime you can accept. It plans restore tests, a failover drill, safe table changes and limits on connections. You get a plan and checklist for your team. It does not touch your database.",
 "job": {
  "id": "ship-and-host",
  "name": "Ship and host your app"
 },
 "level": "intermediate",
 "thinking": "high",
 "tested": true,
 "updated": "2026-11-03",
 "first_published": "2026-10-26",
 "inputs": [
  {
   "type": "question",
   "required": true,
   "label": "Question",
   "what": "the problem, decision or piece of work you want help with, and what a good outcome looks like"
  },
  {
   "type": "source_text",
   "required": false,
   "label": "Source text",
   "what": "a long source in full: an article, a video or talk transcript, or notes from a book, with its title, author and link"
  }
 ],
 "outputs": [
  {
   "type": "plan",
   "required": true,
   "label": "Plan",
   "what": "a dated plan: what to do, in what order, with a decision rule for each step"
  },
  {
   "type": "audit_report",
   "required": true,
   "label": "Audit report",
   "what": "findings with evidence, severity, missing inputs and next actions"
  }
 ],
 "you_give": [
  "The database engine and version, such as PostgreSQL or MySQL, and whether it is managed (for example by your cloud provider) or run by you.",
  "How you back up today and how often, and the tool you use.",
  "How much data you can lose and how long you can be down. If you do not know, say so.",
  "Your copy setup, such as one main server and one or more replicas (optional)",
  "The last time you restored a backup or ran a failover (optional)",
  "A table change you plan, and roughly how big and how busy the table is (optional)"
 ],
 "you_get": [
  "Recovery targets in plain words, and whether your current setup can meet them.",
  "A restore test plan with the steps, the checks to run and what to measure.",
  "A failover plan and drill that avoids promoting a copy that is behind.",
  "A safe change plan for a table, with lock limits, batches and a way back.",
  "Limits for connections, the alerts to set and a drill schedule."
 ],
 "use_when": [
  "You have backups but have never restored one, and want a way to prove they work.",
  "Someone asks \"what happens if the main database server dies?\" and you do not have a tested answer.",
  "You must change a table on a busy database, such as adding a column, without freezing the app.",
  "Your app runs out of database connections under load, even when the database looks idle."
 ],
 "skip_when": [
  "Your database is down or losing data right now. Follow your own runbook and call your database admin or provider. For a live outage, use the Incident response coordinator to run the response.",
  "You want slow queries and missing indexes fixed. Use the Database performance analyst.",
  "You want goals and alerts for a whole service, not just the database. Use the SRE agent.",
  "You want it to run restores, failovers or changes. It writes the plan. Your team runs it on a spare copy first."
 ],
 "output_sample": {
  "input": [
   "Your database engine and version, and how it is hosted",
   "Your backup tool and schedule",
   "How much data you can lose and how long you can be down",
   "A planned table change and the last restore or failover (optional)"
  ],
  "prerequisites": [
   "A spare server or test copy where you can run restores and drills safely."
  ],
  "output": [
   {
    "name": "Scope",
    "contains": "Your engine, hosting and the assumptions the plan is built on."
   },
   {
    "name": "Recovery targets",
    "contains": "Your data loss and downtime limits, and whether today's setup can meet them."
   },
   {
    "name": "Backup and restore test plan",
    "contains": "The steps to restore a backup to a spare server, what to check and the time to measure."
   },
   {
    "name": "Failover plan and drill",
    "contains": "How a new main server is chosen and the drill that proves it works."
   },
   {
    "name": "Safe change plan",
    "contains": "A table change in small steps with lock limits, batches and a way back."
   },
   {
    "name": "Connections and alerts",
    "contains": "Connection limits and alerts for copy delay, backup age and overdue drills."
   },
   {
    "name": "Drill schedule",
    "contains": "Which drills to run, how often and who owns each."
   },
   {
    "name": "Gaps and checks",
    "contains": "Missing facts and open choices, with who should decide each."
   }
  ]
 },
 "output_shape": "SCOPE\n  Engine and version <name> | Hosting <managed or self-run> | Assumptions <list>\n\nRECOVERY TARGETS\n  Data loss limit <time or MISSING> | Downtime limit <time or MISSING> | Can the current setup meet them? <yes, no or unknown, and why>\n\nBACKUP AND RESTORE TEST PLAN\n  <step> | <what to check> | <what to measure> | <how often>\n\nFAILOVER PLAN AND DRILL\n  <step> | <pass if> | <risk if skipped>\n\nSAFE CHANGE PLAN\n  <change> | <steps in order> | <lock and time limits> | <way back>\n\nCONNECTIONS AND ALERTS\n  <limit or alert> | <why> | <threshold, from you>\n\nDRILL SCHEDULE\n  <drill> | <how often> | <owner>\n\nGAPS AND CHECKS\n  <missing fact> | <why it matters> | <who decides>",
 "how_to_use": [
  "Download the pack and add it to your AI as a skill. If you cannot, paste SKILL.md into a new chat, then paste references/source-agent.md.",
  "Write your engine and version, how you host it, your backup tool and schedule, and your data loss and downtime limits. No database access is needed.",
  "Type \"Plan recovery for this database. Start with the restore test. Ask for any limit I did not give. Mark every assumption.\"",
  "Check the restore test first. It must restore to a spare server and measure the real time.",
  "Run the restore test and the drill on a spare copy, never on production. Write down what you measure.",
  "Give any table change plan to your database admin to check against your engine's own docs before it runs."
 ],
 "checks": [
  "The result addresses your actual task and cites the evidence used.",
  "Examples, role-play experience and targets are kept separate from verified results.",
  "Claims of tests, memory, tool access or completed actions match what actually happened."
 ],
 "next": [
  {
   "name": "AWS architecture reviewer",
   "url": "https://useaiblocks.com/skills/copilot-aws-well-architected-review",
   "why": "AWS architecture reviewer"
  }
 ],
 "source": {
  "by": "Michael Sitarzewski and Agency Agents contributors",
  "repo": "msitarzewski/agency-agents",
  "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/engineering/engineering-database-reliability-engineer.md",
  "licence": "MIT",
  "original_name": "Database Reliability Engineer",
  "commit": "b37b5bb33b78f2c1d6567d98e25ca818e3259219"
 },
 "credits": [
  {
   "title": "Database Reliability Engineer",
   "by": "Michael Sitarzewski and Agency Agents contributors",
   "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/engineering/engineering-database-reliability-engineer.md",
   "used": "Original agent profile, preserved in references/source-agent.md; AI Blocks adds setup and review instructions."
  }
 ],
 "files": [
  "LICENSE",
  "references/source-agent.md",
  "SETUP.md",
  "source.json"
 ],
 "links": {
  "page": "https://useaiblocks.com/agents/agency-engineering-database-reliability-engineer",
  "markdown": "https://useaiblocks.com/agents/agency-engineering-database-reliability-engineer.md",
  "json": "https://useaiblocks.com/agents/agency-engineering-database-reliability-engineer.json",
  "instructions": "https://useaiblocks.com/skills/agency-engineering-database-reliability-engineer/SKILL.md",
  "download": "https://useaiblocks.com/skills/agency-engineering-database-reliability-engineer.zip",
  "api_item": "https://useaiblocks.com/api/v1/items/agency-engineering-database-reliability-engineer",
  "api_document": "https://useaiblocks.com/api/v1/documents/agent/agency-engineering-database-reliability-engineer",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
