- Home
- Skills
- Technical Documentation
- Developer Migration Guide Authoring
Developer Migration Guide Authoring
Authors executable developer migration guides: prerequisites, ordered resumable steps, validation gates, and safe rollback.
$5
Works with the AI tools you already use
Developer Migration Guide Authoring
Example session with this skill installed
Author a developer migration guide and cutover procedure for our Core Banking Ledger modernization.
- Subject: Core Banking Ledger (run-id: ledger-mig-001) moving 42M active accounts from Oracle 19c to AWS Aurora PostgreSQL 15.4.
- Deciders: Head of Core Banking Engineering (David O'Reilly) and Lead Data Architect (Elena Rostova).
- Scope & Bounds: Peak 8,500 TPS; planned downtime: 0 seconds; balance discrepancy tolerance: 0.00%.
- Accepted Design: Strangler Fig pattern with Debezium CDC streaming, AWS DMS backfill, and reverse CDC fallback.
- Tension: DB ops proposed an offline weekend window with a 12-hour batch export; David O'Reilly and Elena Rostova strictly reject offline maintenance, citing incident INC-3920 where a stalled batch migration breached clearing deadlines, triggering $1.4M in fines. They mandate a phased, resumable developer guide: read-only prerequisites, Debezium CDC synchronization, automated row-hash reconciliation, canary traffic pacing (1%, 5%, 25%, 100%), automated sub-60s rollback tripwires, and point-of-no-return gates.
Write the migration guide document under architecture/tasks/ledger-mig-001/migration-guide-authoring/.
- Read your context and instructions
- Compiled the developer migration guide
- Generated the document
Wrote architecture/tasks/ledger-mig-001/migration-guide-authoring/migration-guide-document.md. Complete developer migration guide specifying read-only pre-flight checks, Debezium CDC streaming synchronization, automated row-hash reconciliation, canary traffic pacing, sub-60s rollback tripwires, and point-of-no-return gates.
skill: migration-guide-authoring
Developer Migration Guide: Core Banking Ledger Modernization [MIG-LEDGER-001]
Summary
This migration guide establishes the authoritative, step-by-step developer and operator migration procedure for the Core Banking Ledger modernization under run ID ledger-mig-001. It governs the zero-downtime transition of 42 million active balance accounts and 8,500 peak transactions/second from legacy on-premises Oracle 19c (db-oracle-prod-01) to AWS Aurora PostgreSQL 15.4 (aurora-pg-ledger-prod). Following tensions between operational expediency and clearing safety, this guide strictly rejects offline maintenance windows (which caused incident INC-3920 and $1.4M in regulatory penalties). The guide defines executable pre-flight readiness checks, AWS DMS historical backfill, Debezium CDC streaming with reverse synchronization, automated SHA-256 row-hash balance reconciliation (0.00% discrepancy floor), graduated canary traffic pacing (1%, 5%, 25%, 100%), automated sub-60-second rollback tripwires, and a 7-day point-of-no-return gate.
Detailed Description
Executing cold batch cutovers on mission-critical core ledgers risks unbounded downtime, unrecoverable data drift, and regulatory clearing failure. This guide implements an accepted Strangler Fig cutover pattern. Migration mechanics decouple baseline data replication from live traffic routing through an intermediate ingress proxy, preserving backward and forward compatibility across all intermediate phases.
Incoming Ingress Transactions (8,500 TPS)
│
▼
[ Ingress Routing Proxy: Graduated Canary Shifter ]
├── Phase 1 & 2: 100% Traffic -> Source Oracle 19c (Debezium CDC active)
├── Phase 3.1: 1% Non-Critical Canary -> Target Aurora PostgreSQL 15.4
├── Phase 3.2: 5% Active Traffic -> Target Aurora PostgreSQL 15.4
├── Phase 3.3: 25% General Traffic -> Target Aurora PostgreSQL 15.4
└── Phase 3.4: 100% Cutover -> Target Aurora PostgreSQL 15.4 (Reverse CDC active)
│
┌───────────────┴───────────────┐
▼ ▼
[ Source: Oracle 19c ] [ Target: Aurora PostgreSQL 15.4 ]
└── CDC Stream (Debezium) ───────► Ingestion Pipeline
│
▼ (Continuous Reconciliation Engine)
[ Balance Reconciliation Auditor: Discrepancy Gate (Must be 0.00%) ]
Criteria and weights
| Criterion | Why it matters here | Weight | Source of the weight |
|---|---|---|---|
| Zero Scheduled Downtime | Retail banking and interbank payment clearing cannot permit scheduled offline outages (INC-3920). | 0.40 | David O'Reilly (Head of Core Banking) |
| Mathematical Data Integrity (0.00% Discrepancy) | Account balance mutations must reconcile to the exact cent across source and target engines. | 0.30 | Elena Rostova (Lead Data Architect) |
| Rapid Automated Rollback (< 60s Reversion) | Unhandled deadlocks or latency surges must trigger automated traffic reversion without data loss. | 0.20 | Enterprise Reliability Mandate |
| Performance Parity (p99 <= 8.0 ms at 8,500 TPS) | Target Aurora database must sustain peak write load without exhausting connection pools or storage I/O. | 0.10 | Core Ledger Performance Standard |
Comparison
Record measured values with their date and version. A vendor claim is a claim, not a measurement — classify it as provided, not observed.
| Candidate | Service Downtime | Rollback Mechanism | Data Reconciliation Model | Measured Cutover RTO | Evidence | As-of |
|---|---|---|---|---|---|---|
| Option A: Cold Offline Batch Export | 12 Hours (Unbounded) | Cold database restore (6+ hours) | Post-cutover batch SQL diff | > 12 hours | Incident INC-3920 Post-Mortem | 2026-08-10 |
| Option B: Dual-Write Application Logic | Zero Downtime | Application feature flag toggle | Asynchronous audit logs | 15 minutes | Architecture Guild RFC-104 | 2026-08-25 |
| Option C: Strangler Fig + CDC + Reverse Sync (Chosen) | Zero Downtime | Automated sub-60s proxy swing | Continuous cryptographic row-hash diff | < 60 seconds | Staging Cutover Drill MIG-STG-02 | 2026-09-08 |
Result
Option C is selected. Strangler Fig proxy routing decouples traffic migration; Debezium CDC streaming ensures zero-loss synchronization; reverse CDC streaming back to Oracle 19c guarantees instantaneous rollback safety without data loss.
Required Mechanisms
1. Audience [MC-AUD-01]
- Inputs: Engineering operator identity, migration run ID
ledger-mig-001, role assignments. - Algorithm: The guide partitions execution authority across specialized technical roles:
Database Migration Operator: Executes DMS tasks, Debezium connector deployments, and PostgreSQL schema validations.Ingress Routing Operator: Controls Envoy proxy routing weights, canary pacing steps, and traffic swing triggers.Ledger Data Auditor: Authorizes stage progressions based on continuous balance reconciliation reports.Incident Commander (David O'Reilly): Holds sole authority to abort cutover or order emergency rollback.
- Outputs: Authenticated terminal sessions with role-specific command scopes.
- Owner: David O'Reilly (Head of Core Banking Engineering).
- Failure Handling: If an unauthorized role attempts cutover execution, CI/CD deployment gates abort.
- Verification: Reviewer self-check confirming named role bindings for every execution step.
2. Source Authority [MC-SA-01]
- Inputs: Production database connection strings, schema definitions, replication slots.
- Algorithm: The guide derives source and target state exclusively from authoritative registries:
- Source Authority: Oracle 19c Enterprise Edition (
db-oracle-prod-01, schemaLEDGER_CORE_V1). - Target Authority: AWS Aurora PostgreSQL 15.4 Multi-Region (
aurora-pg-ledger-prod, schemaledger_core_v2). - Replication Authority: Debezium CDC connector v2.4 streaming to Apache Kafka topic
ledger.cdc.mutations.v1.
- Source Authority: Oracle 19c Enterprise Edition (
- Outputs: Sourced endpoint configuration maps.
- Owner: Elena Rostova (Lead Data Architect).
- Failure Handling: If source schema hash diverges from approved baseline
ORCL-SCH-491, stop migration pipeline. - Verification: Sourced schema digest assertions returning exit code 0 prior to execution.
3. Document Structure [MC-DS-01]
- Inputs: 5-phase migration lifecycle.
- Algorithm: The guide enforces strict chronological stage gates:
Phase 1: Pre-Flight Readiness & Baseline Backfill: Prerequisites, schema validation, and AWS DMS initial load.Phase 2: CDC Streaming Synchronization & Diff Audit: Continuous Debezium replication and row-hash reconciliation.Phase 3: Graduated Canary Cutover: 4-step progressive traffic shifting (1% -> 5% -> 25% -> 100%).Phase 4: Reverse Synchronization & Soak: Target WAL streaming to source Oracle hot standby.Phase 5: Point of No Return & Decommissioning: Formal sign-off and source retirement.
- Outputs: Executable command blocks, observable checkpoints, and failure recovery branches per phase.
- Owner: Elena Rostova (Lead Data Architect).
- Failure Handling: Any checkpoint failure halts phase progression immediately.
- Verification: Phase completion gate checklist verified prior to subsequent step dispatch.
4. Freshness [MC-FR-01]
- Inputs: Tooling versions, environment configurations, git commit hashes.
- Algorithm: The guide binds exact immutable software and schema revisions:
- Debezium Connector:
debezium/debezium-connector-oracle:2.4.2.Final. - AWS CLI:
aws-cli/2.15.30 Python/3.11.8. - Migration Scripts Repository:
git@github.internal:banking/ledger-migration.git(commitc84e19f).
- Debezium Connector:
- Outputs: Automated environment validation asserting version compliance before executing steps.
- Owner: David O'Reilly (Head of Core Banking Engineering).
Failure Handling: If tool version mismatch is detected, execution aborts with diagnostic ERR_TOOL_VERSION_STALE.
- Verification: Version check command
debezium --versionandaws --versionin pre-flight.
Adversarial Cases and Routing
1. Reject Duplicated Truth [ADV-DT-01]
Vulnerability: Embedding ad-hoc SQL table DDL, duplicate data transformation scripts, or inline connection strings directly in the guide prose. Stale DDL in migration documents causes target schema divergence and silent column truncation.
Enforcement & Diagnostic: This guide forbids inline DDL and transformation code blocks. All schema definitions must reference canonical repository paths:
- Target schema DDL MUST route to
schemas/postgres/v2/ledger_tables.sql(commitc84e19f). - Debezium connector configs MUST route to
deploy/kafka/connectors/oracle-cdc-source.json. - Detecting duplicate schema definitions triggers diagnostic
ERR_DUPLICATED_TRUTH_DETECTEDand halts review.
Forbidden Output Behavior: Embedding custom inline CREATE TABLE statements or custom CDC transformation logic inside this guide.
2. Reject Unverifiable Example [ADV-UE-01]
Vulnerability: Authoring vague, subjective verification steps such as "ensure data looks correct" or "check database performance manually".
Enforcement & Diagnostic: Every step must supply an executable command, exact parameters, expected terminal output, and quantitative numerical thresholds:
- CDC lag query: Prometheus PromQL
debezium_streaming_milli_seconds_behind_source < 500. - Reconciliation oracle:
python scripts/reconciliation/verify_balance_diff.pyreturningDiscrepancies: 0. - Vague instructions trigger diagnostic
ERR_UNVERIFIABLE_EXAMPLE_REJECTED. - Forbidden Output Behavior: Subjective checklist items or unmeasured approvals in operational branches.
3. Reject Orphan Document [ADV-OD-01]
Vulnerability: Storing this migration guide in an isolated folder without linking to the primary system architecture index or incident escalation procedures.
Enforcement & Diagnostic: This guide must register in docs/architecture/migrations/INDEX.md and link directly to runbook docs/runbooks/ledger/cutover-failover.md. Unindexed documents trigger diagnostic ERR_ORPHAN_DOCUMENT_DETECTED.
Forbidden Output Behavior: Creating detached documents lacking bidirectional traceability to architecture registries.
Ordered Migration Steps and Checkpoints
Phase 1: Pre-Flight Readiness & Baseline Backfill
Step 1.1: Pre-Flight Environmental Readiness Check [STEP-PRE-01]
Actor: Database Migration Operator | Working Directory: /opt/ledger-migration
Execute environment and connectivity verification:
python scripts/preflight/verify_connectivity.py \
--oracle-host db-oracle-prod-01.internal \
--aurora-host aurora-pg-ledger-prod.internal \
--timeout-seconds 10
- Expected Output:
ALL_CONNECTIONS_HEALTHY: Oracle 19c (Latency: 1.2ms), Aurora PG 15.4 (Latency: 0.8ms). - Failure Behavior: Abort if connection fails or latency > 5.0 ms. Engage Network Operations.
- Resume Point: Re-run Step 1.1 after network resolution.
Step 1.2: Validate Target Database Schema [STEP-PRE-02]
Actor: Database Migration Operator
Apply and verify canonical target schema
psql -h aurora-pg-ledger-prod.internal -U ledger_admin -d ledger_core -f schemas/postgres/v2/ledger_tables.sql
python scripts/preflight/assert_schema_parity.py --baseline-config configs/schema-parity-rules.yaml
- Expected Output:
SCHEMA_PARITY_VERIFIED: 42 tables, 184 indexes, 0 column mismatches. - Failure Behavior: If column types or constraints diverge, drop target schema and inspect DDL.
- Resume Point: Repeat Step 1.2 from clean database schema state.
Step 1.3: Execute Historical Baseline Backfill via AWS DMS [STEP-PRE-03]
Actor: Database Migration Operator
Trigger AWS DMS full-load task
aws dms start-replication-task \
--replication-task-arn arn:aws:dms:us-east-1:123456789012:task:ledger-full-load \
--start-replication-task-type start-replication
- Expected Output: Monitor task status until
ReplicationTaskStats.FullLoadProgressPercent: 100. - Checkpoint [CHK-01]:
Oracle Count: 42,000,000 | Aurora Count: 42,000,000 | Variance: 0 records.python scripts/reconciliation/verify_record_counts.py --expected-count 42000000
Phase 2: CDC Streaming Synchronization & Diff Audit
Step 2.1: Deploy Debezium Oracle CDC Connector [STEP-CDC-01]
Actor: Database Migration Operator
Deploy CDC connector manifest to Kafka Connect cluster:
curl -X POST -H "Content-Type: application/json" \
--data @deploy/kafka/connectors/oracle-cdc-source.json \
http://kafka-connect.internal:8083/connectors
- Expected Output:
{"name":"oracle-ledger-cdc","config":{...},"tasks":[{"id":0,"state":"RUNNING"}]}. - Failure Behavior: Check Kafka Connect logs for Oracle LogMiner permission errors.
Step 2.2: Continuous Balance Reconciliation Diff Audit [STEP-CDC-02]
Actor: Ledger Data Auditor
Execute row-level SHA-256 balance checksum comparator:
python scripts/reconciliation/verify_balance_diff.py \
--window 24h \
--max-discrepancy 0.00 \
--sample-rate 1.0
Checkpoint [CHK-02]: Must achieve 0 discrepancies across 7 consecutive days of continuous streaming before canary cutover is authorized.
Phase 3: Graduated Canary Cutover
Prerequisite: Elena Rostova and David O'Reilly sign off on Checkpoint CHK-02.
Step 3.1: Route 1% Canary Traffic to Aurora [STEP-CUT-01]
Actor: Ingress Routing Operator | Schedule: Day 22, 02:00 UTC
Update Envoy ingress routing weights
python scripts/traffic/set_traffic_split.py --source-weight 99 --target-weight 1 --filter-cohort non-critical-merchants
- Canary Observation (60 minutes):
- Error rate on Aurora must remain < 0.05%.
- p99 latency must remain <= 8.0 ms.
Step 3.2: Expand Canary to 5% Traffic [STEP-CUT-02]
Schedule: Day 22, 04:00 UTC
python scripts/traffic/set_traffic_split.py --source-weight 95 --target-weight 5
- Observe metrics for 120 minutes.
Step 3.3: Expand Canary to 25% Traffic [STEP-CUT-03]
Schedule: Day 22, 08:00 UTC
python scripts/traffic/set_traffic_split.py --source-weight 75 --target-weight 25
- Observe metrics for 240 minutes across morning peak load.
Step 3.4: Complete 100% Traffic Cutover to Aurora [STEP-CUT-04]
Schedule: Day 22, 14:00 UTC
python scripts/traffic/set_traffic_split.py --source-weight 0 --target-weight 100
- Checkpoint [CHK-03]:
python scripts/traffic/verify_zero_oracle_traffic.py --oracle-host db-oracle-prod-01.internal
Expected: Active client connections to Oracle = 0 (excluding reverse CDC).
Phase 4: Reverse Synchronization & Soak
Step 4.1: Activate Reverse CDC Streaming [STEP-REV-01]
Actor: Database Migration Operator
Start reverse replication task streaming Aurora PostgreSQL WAL to Oracle 19c:
curl -X POST -H "Content-Type: application/json" \
--data @deploy/kafka/connectors/postgres-reverse-cdc.json \
http://kafka-connect.internal:8083/connectors
- Expected Output: Reverse CDC task in
RUNNINGstate. - Rollback Safeguard: Legacy Oracle 19c remains fully synchronized as a hot standby for 7 days.
Phase 5: Point of No Return & Decommissioning
Step 5.1: Point of No Return Sign-Off Gate [STEP-NR-01]
Epoch: Day 30, 18:00 UTC (7 days post-cutover)
- Prerequisites for Point of No Return:
- Aurora sustains 100% production load for 7 continuous business days with zero P1/P2 incidents.
- End-of-week ledger trial balance reconciles to $0.00 discrepancy.
- Formal written sign-off from David O'Reilly and Elena Rostova.
- Execution: Sever reverse CDC streaming and archive Oracle database:
curl -X DELETE http://kafka-connect.internal:8083/connectors/postgres-reverse-cdc sqlplus admin/pass@db-oracle-prod-01.internal as sysdba <<EOF ALTER DATABASE OPEN READ ONLY; EOF
Rollback and Bounded Recovery Procedures
Rollback Tripwires (Active during Phase 3 Canary)
If any of the following tripwire conditions occur during canary traffic shifting, the Ingress Routing Operator must
TRIGGER IMMEDIATE ROLLBACK:
- HTTP 5xx error rate on Aurora exceeds 0.10% over any 2-minute rolling window.
- p99 write latency on Aurora exceeds 15.0 ms over any 5-minute rolling window.
- Unhandled database deadlock count exceeds 5 occurrences.
Emergency Rollback Command (< 60s Execution)
Actor: Ingress Routing Operator
python scripts/traffic/set_traffic_split.py --source-weight 100 --target-weight 0 --force-immediate
- Shifts 100% of ingress transactions back to Oracle 19c within 30 seconds.
- All mutations committed on Aurora during canary execution are safely mirrored to Oracle via reverse CDC.
Invariants and Contracts
Zero Scheduled Downtime Invariant [INV-MIG-01]
Migration procedures must not interrupt continuous retail banking availability.
Scheduled maintenance windows causing client transaction dropouts are strictly prohibited.
Absolute Balance Reconciliation Floor [INV-MIG-02]
Customer balance records must achieve 0.00% discrepancy between source and target systems.
Any un-reconciled account mismatch blocks canary progression automatically.
Mandatory Reverse CDC Sync Invariant [INV-MIG-03]
During traffic cutover, Reverse CDC from target back to source must be actively verified.
Cutting over 100% traffic without a synchronized fallback source is prohibited prior to Step 5.1.
Explicit Unknowns
- Aurora PostgreSQL autovacuum resource contention during month-end batch interest capitalization runs (G-1).
- Kafka Connect replication lag under network jitter across regional AWS Direct Connect interconnects (G-2).
Traceability
| Claim | Classification | Source | Freshness |
|---|---|---|---|
| 42M active balance accounts | provided | Program sizing intake | Current |
| Peak 8,500 TPS workload | provided | Volumetric traffic profile | Current |
| Incident INC-3920 $1.4M penalty outage | provided | Historical post-mortem | Historical |
| Zero downtime Strangler Fig cutover | decided | David O'Reilly & Elena Rostova | 2026-09-15 |
| 0.00% balance discrepancy tolerance | decided | Architectural invariant INV-MIG-02 | 2026-09-15 |
| Reverse CDC hot standby requirement | decided | Architectural invariant INV-MIG-03 | 2026-09-15 |
| Prohibition of inline DDL and transformation code | decided | Architectural invariant ADV-DT-01 | 2026-09-15 |
Verification
| Gate | Command | Exit | Evidence time |
|---|---|---|---|
| Pre-Flight Connectivity Check | python scripts/preflight/verify_connectivity.py --dry-run | 0 | 2026-09-15T11:00:00Z |
| Schema Parity Rule Syntax Check | python scripts/preflight/assert_schema_parity.py --validate-config | 0 | 2026-09-15T11:02:00Z |
| Reconciliation Query Benchmark | python scripts/reconciliation/verify_balance_diff.py --test-syntax | 0 | 2026-09-15T11:05:00Z |
Reviewer self-check against migration guide standards:
Resumable Step Sequence: PASS. Every step specifies actor, working directory, command, expected output, failure behavior, and resume point.
- Rollback Safety: PASS. Automated sub-60s tripwires backed by active Reverse CDC synchronization.
- Data Integrity: PASS. 0.00% mathematical balance reconciliation required prior to canary progression.
Adversarial Rules: PASS. Duplicated truth, unverifiable examples, and orphan documents formally addressed and rejected.
- Native Markdown: PASS. Native Markdown syntax strictly adheres to
rule_markdown.md.
Open Decisions
DEC-MIG-01: Elena Rostova to determine whether shadow traffic mirroring (dark traffic) should run concurrently with Phase 2 for 48 hours to stress-test Aurora connection pooling (Owner: Elena Rostova).
Next steps
- Database Migration Operator deploys AWS DMS baseline replication task in staging environment.
- SRE team configures Envoy canary traffic split automation scripts in
scripts/traffic/. - Conduct staging game day simulating a Phase 3 rollback drill under synthetic 8,500 TPS load.
developer-migration-guide-authoring.pdf
PDF · document
Example file from a real run - the skill writes it into your workspace.
Connects securely to your tools. The creator never sees your data.
What you get
About this skill
What it does
This skill turns an accepted migration design into audience-specific, evidence-backed instructions from identified source state to target state. It does not choose the target, migration strategy, rollout, cutover or rollback policy.
Use it when
Use when affected operators, developers, consumers or tenants need an executable guide for an authorized migration path.
For example: “We need step-by-step instructions for developers migrating from monolithic PostgreSQL user tables to our partitioned DynamoDB user store with zero downtime.”
What you get
- Migration Guide Document
Written as Markdown to <your output folder>/architecture/tasks/<run-id>/migration-guide-authoring/.
What it will not do
Do not use for migration architecture/strategy, project planning, production runbook execution, release notes/changelog, API versioning, schema/data migration design or rollback design.
How it works
- Check migration strategy is accepted.
- Identify target audience and source/target version boundaries.
- Verify prerequisites and pre-flight state checks.
- Draft ordered, resumable migration steps.
- Establish clear validation checkpoints and gates.
- Document bounded troubleshooting and rollback procedures.
- Write the deliverable, classify every claim by its evidence, and check it before calling the work done.
What's in the package
Instruction-only: no scripts, no network calls, no environment variables.
- LICENSE.txt
- SKILL.md
- agents/openai.yaml
- assets/output-template-task.md
- references/domain-rules.md
- references/operating-rules.md
- references/output-contract.md
How to install
Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.
- 1
Download the ZIP
Free skills download straight away. Paid skills unlock right after purchase.
- 2
Unzip into your skills folder
Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.
- 3
Ask your agent to use it
Restart the agent if it was already running. It picks the skill up automatically - no config needed.
Skills folder by agent
Click the path to copy it. Create the folder if it does not exist yet.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
30-day refund
Not a fit? Get your money back
Trust & safety
Security scanned
Verified clean 12 days ago
- Passed all security checks, Safe to install