← Back to the sample report · Markdown source


artifact: "engineering-report" database: "wordpress" job_id: "docs-sample" generated: "2026-10-07T05:24:34+00:00" filename: "wordpress_engineering-report_docs-sam_20261007.md" source_artifact: "wordpress/docs-sample/synthesis/v2/report.json"


Database Modernization — Engineering Report

Source database: wordpress. This is the build companion to the Decision Report: the source-to-target mapping, the per-engine target schemas, and the query groups.

Target engines

Engine Role Workload Why
dynamodb Migration target 54.2% 97% mean fit across 58 queries (18 rated tables), led by key-value lookups (25 of 58). estimated $98.41/month.
aurora_mysql Migration target 45.8% 88% mean fit across 49 queries (21 rated tables; 2 queries without table-level evidence), pinned by a utility or DDL statement, aggregation, full-text or pattern search and multi-table joins (35 of 49). estimated $318.80/month.
elasticache Cache layer 20 cached reads · 83.4% of calls Cache layer for 20 hot reads (83.4% of calls), mostly point lookups, cache-aside in front of Aurora MySQL in wave 2, then DynamoDB once wave 3 moves these reads; it owns no queries; 76% mean cache fit across 20 cached reads (12 rated tables). estimated $165.55/month (185.07 calls/s combined across these reads clears the 1 calls/s hot-read floor).

Cost

Cache layer (elasticache)

elasticache fronts 20 hot reads (83.4% of calls, 185.1 calls/s) cache-aside. It owns none of the workload: each cached read stays with its owner engine, which serves every miss and every write. It fronts Aurora MySQL with no data migration of its own, and keeps serving the same reads as their owners move in later waves: invalidation follows the engine that owns each cached table.

Migration roadmap (3 waves)

One suggested adoption path, not the only one — to modernize in one step instead, adopt the target architecture in the Target engines table above directly.

1 table name in the assignment did not resolve to a table or view in the collected schema (a CTE alias, a system catalog, a sequence, a keyword, or a column the SQL parser mistook for a table) and is not shown in any wave.

Wave 1: Move to Aurora MySQL

Wave 2: Cache hot reads with ElastiCache

Wave 3: Move key-value and point-lookup queries to DynamoDB

Risk register (2)

dynamodb

Resolved by the assignment (6)

Migration trade-offs (4)

reality-check


Assignments are deterministic. The complete machine-readable assessment is the Assessment Data (JSON) artifact.