Build1 distinct publisher2 min readPublished
AWS Professional Services scopes its migration agents so discovery cannot deploy. The load-bearing engineering sits in the manifest, the log fields, and a loop nobody bounded.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
Instrumentation is where this design earns its keep, and where the published record thins out. Each agent emits structured JSON carrying project_id, agent_name, stage, status, duration_ms and output_uri, queried back through CloudWatch Logs Insights and X-Ray [15]. For a clean pass that is enough to locate where time went: one sample record puts template generation at 4200 ms [16]. For a project that has been round the governance loop twice it is less clear, because the excerpt breaks off mid-value inside output_uri [17] and nothing in the fields shown separates a first attempt from a third [15].
The acyclicity claim rewards precise reading. Agents never invoke each other, so nothing in the call graph can cycle [9]. The stage field does cycle: a rejection writes reasons into validation_results and sets current_stage back to iac_generation, and the generation agent finds that out by polling the manifest [10]. So the graph of callers is acyclic while the graph of states is not [24]. What keeps it from spinning is not the topology.
The stage list and the agent list do not line up either. Five stage values [7] against four agents [2], with the operations agent holding two of them, since it is the only one permitted to deploy and it also owns the post-migration work [21]. It is also the only agent whose identity changes mid-run, from an expiring deploy role to a separate read-only monitoring role [14]. The other three carry one scope for their whole life [4].
The separation worth copying is narrower than the architecture diagram. The agent that can halt a migration cannot deploy one, and the agent that can deploy cannot halt one [20]. The validation tooling itself is ordinary CI equipment; what matters is that the process running it holds no deploy credential, so an approval cannot quietly become an apply.
On the headline, the receipts are thin. Weeks-to-minutes and the customer proof points reach us through dev.to's account of the AWS Professional Services material [1][3], with no customer named and no before-and-after pair given; the only measured duration in front of us is that single 4200 ms stage [19]. The architecture is legible enough to rebuild from the description. The performance claim is not testable from anything supplied.
Ranked by verification strength, evidence, and original report placement.
Each agent is a Bedrock Agent with tool access scoped to its domain: the discovery agent cannot deploy infrastructure, the IaC generation agent cannot read production credentials, and the governance agent has read-only access to policy repositories.
When the discovery agent completes a scan it writes structured JSON output (resource metadata, dependencies, migration readiness scores) to an S3 bucket; the IaC generation agent subscribes via EventBridge and begins template generation only after the scan is marked complete.
When an agent completes its task it updates the manifest and publishes an EventBridge event; the next agent subscribes to that event type and reads the previous agent's output from S3.
The design avoids circular dependencies because agents never call each other directly; they communicate through immutable S3 artifacts and DynamoDB state transitions.
IAM roles enforce least privilege between agents: only the operations agent can deploy infrastructure, while discovery and IaC generation operate read-only or generate-only, limiting blast radius.
The operations agent assumes a role with time-limited credentials that expire after deployment, and post-migration monitoring uses a separate read-only role.
Follow any of these and your For You feed starts watching them — no settings page required.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Detailed design, single unverified source
Architectural detail is specific and internally coherent (manifest fields, stage enum, event flow, IAM split, log schema, code sample), which supports the design claims. But everything rests on one self-published post with no AWS primary reference, no named customer and no measurement behind its headline compression claim, and one ledger assertion about the log schema does not match the supplied body.
Self-reported deployment, nothing corroborated
The only adoption signals are the post's own assertion of a deployed enterprise workflow with unnamed customer proof points and an uncited ~60% first-pass governance rate. There is no named deployment, no volume figure, no repository, and no second source in the cluster to corroborate either.
Headline outruns the disclosed numbers
'Production data', 'not a demo' and weeks-to-minutes are strong framing, yet the disclosed quantities are a 4200 ms per-stage duration and a ~60% first-iteration pass rate that implies two or three governance rounds per project. The engineering body is more modest than the headline, and the unbounded regeneration loop cuts directly against the minutes framing.
Promotional framing on a self-publish platform
The source is community-platform content that amplifies a vendor capability narrative: it restates AWS-favourable assertions ('production data', 'real customer proof points') without citation or affiliation disclosure while showcasing a stack of named AWS services. No sponsorship, employment or commercial relationship is disclosed in the supplied material, so this reflects observable framing incentives only.
Design plausible, provenance weak
The described mechanics are consistent enough to be confident about what the post says and what it omits, including the authority split and the unbounded loop. Confidence that the system exists as described in production, and that the compression and pass-rate figures are real, is low: one publisher, no corroboration, and unresolved internal tension between remediation and read-only roles.
build
AWS's own agent fleet guidance puts the lock-in in state, auth and telemetry, not the framework1 distinct publisher
build
S3 to Lambda is async and at-least-once: the 3% that vanished after eight quiet months1 distinct publisher
build
AWS's phone-ordering host is really an MCP wiring diagram with no retry button1 distinct publisher
build
AWS puts a number on agent displacement: IaC authoring from 3-4 weeks to minutes1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 24, 2026