AWS Emulator and the engineer's job whenever agents compose the code
November 11, 2026 • 1671 words

In 2004, barely a duration into my new job at Amazon, I got the chance to choice an intern to associate my team. I had an advantage complete my colleagues: I had already heard concerning a brilliant young man operating toward his PhD at the Vrije Universiteit in Amsterdam (where I happened to have received quarry as fine :-)). I immediately picked Swaminathan Sivasubramanian, whom you all now cognize as Swami. It was likely among the finest decisions I have made in my 22 years as Amazon’s CTO.
After a disastrous Christmas in 2004, whenever business relational databases could not measure to Amazon’s needs, I asked Swami to do a profound dive into how relational databases were really used at Amazon. It turned out that 70% of repository operations were not relational at all. They were key-value. That understanding led to Dynamo, which Swami helped architect. When his internship was over, I hired him full-time correct away, equal before he had finished his PhD.
Bringing in another assertive scholarly led to many awesome discussions alongside Amazon’s applicable engineers, who had rotate into measure experts by really construction at scale. Eventual vs. powerful consistency, CAP vs. Paxos, and more. Over time, Swami became among the chief architects of AWS’s data strategy. And as we have seen in latest years, he has additionally been among the intelligent drivers rearward AI innovation at Amazon.
I am honoured that he wanted to compose a visitant article concerning the essential distributed systems activity that sits rearward many of AWS’s services, and concerning how the engineer’s activity changes whenever agents compose the code. AWS Emulator, launched today, gives agents the benevolent of test surroundings that activity relied on. Swami’s narrative is another awesome example of invisible engineering.
Now, go build.
-W
AWS Emulator and the engineer's job whenever agents compose the code
Today we publish AWS Emulator, which gives coding agents a local copy of AWS to test against, and it connects to a project from first in my career. In many ways, this emulator initiate reminds me of the attempt we put into dependable application engineering to enhance the norm of the distributed systems we build. To that end, we wanted to portion a story:
About twenty years ago, Werner asked me to activity alongside one of Amazon’s earliest engineers, Al Vermeulen, on a distributed fastener assistance we called “Alf”. Alf was built on Paxos, a protocol according to Leslie Lamport’s activity that lets a collection of servers concur on one value, and a replication motor in it kept copies of the data accordant throughout servers. Alf, to date, is the assistance that powers many of our complex distributed systems akin S3, DynamoDB and many additional (although it has evolved fairly a bit alongside assorted changes on top – volition preserve it for another blog!).
Distributed systems are difficult to test
Paxos is the aureate norm among distributed systems agreement protocols and was fine understood in academia. However, construction it at the measure Amazon and AWS were expanding into was not easy. We had to agreement alongside not fair replication throughout servers and data centers but additionally tens of thousands of clients asking for locks at the identical time, renewing their leases during network partitions all the during alongside the center requirement: Always be correct! At that time, the finest ideas for evaluation distributed systems were large-scale scheme evaluation and chaos-based testing. Both worked, but they were expensive, and they could not reproduce many kinds of conditions on demand. That mattered for Alf, which was meant to be the fact store, giving all client a powerfully accordant perspective of the truth, and which had to keep operating through server failures and packet defeat as well. Several industry document had written that Paxos-based locking services were difficult to get right, and the difficulty of evaluation them was part of the reason.
We addressed that by simulating Alf’s surroundings alongside as much fidelity as we could manage. We ran the servers inner a JVM and simulated the network and the remainder of the infrastructure they depended on, so the entire scheme lived in one program that we controlled. We could autumn packets and inject another faults whenever we chose, and we built tools that poked at the simulation for bugs and scalability problems. Concurrency bugs appear lone whenever events happen in a particular order, and in the simulation we could set up many of those orderings on intent and inspect how Alf handled all one. We additionally used ceremonial reasoning, through theoretical techniques specified as TLA+, and it established many issues as well. By evaluation this way we ironed out most of Alf’s concurrency bugs before it ran on genuine servers. Testing in a genuine surroundings afterward turned up distinct problems, since the genuine earth exposes things a simulation cannot.
Outgrowing hand-built test environments
Simulation and ceremonial reasoning the two improved the application norm of the distributed systems we applied them to. The simulation worked since a small squad could build a copy of one system’s surroundings by hand, and at the period AWS had lone a small fistful of services. But today AWS has complete 200 services, and an use that calls AWS needs a test surroundings for all one it uses. Building all of those by hand would obtain years of engineering, and agents now compose code far faster than any squad can inspect it in production. So, we wanted to cognize whether agents could build and test those environments themselves.
The idea came from Matt Goldberg, a Senior Principal Engineer on the AWS Developer Tools team. His assumption was that, stated a written clarification of how a assistance should behave and the genuine assistance to inspect against, an delegate could build a operating type of that assistance on its own. For AWS, the written clarification is the set of community API models, written in Smithy, AWS’s format for describing a service’s operations and their inputs, outputs, and errors. The genuine assistance to inspect against is the AWS haze itself, the identical scheme customers use.
The agents activity from fidelity tests, which are end-to-end client scenarios devised from the community API models. A test power check, for example, that in Amazon Simple Queue Service a received communication stays hidden from another readers until its visibility timeout runs out. The agents accurate all test until it passes against genuine AWS, so the test records how AWS behaves. The agents afterward build the emulator until it passes that identical test, and a test that motionless fails points at a gap in the emulator. Matt began alongside SQS alone, and whenever he gave Kiro one immediate describing this approach, it returned a passable archetypal type of an SQS emulator in concerning 15 minutes. Matt Goldberg’s initiate post tells how that prototype grew into AWS Emulator. All of AWS Emulator’s code was written and tested by agents, and it is built from additional than 400 API models covering additional than 200 AWS services. It runs liberated and offline on your own machine. Teams of agents test it against genuine AWS and fix the gaps they find. Every alter goes through a merge gate, a profound place of automated checks that all alter must continue before it enters the codebase, including multiple safety agents doing adversarial reviews.
Infrastructure in the coding iteration
A coding delegate plant in a loop: it writes code, runs it, and says the outcome before deciding what to alter next. In distributed systems that iteration runs inner infrastructure, so the services it calls have to behave akin the genuine ones. When they do, an delegate can inspect its own activity as it writes and create accurate code on its archetypal attempt far additional often, which improves application quality. AWS Emulator puts that infrastructure inner the iteration on your own machine.
The engineer’s job whenever agents compose the code
When agents compose the code and inspect their own work, the engineer’s job is to provision them area to activity on their own and to build the specs, tests, and merge gates that decide whenever that activity is correct. It was a instruction I learned the difficult way whenever I used Kiro to rebuild the replication motor that Al and I had built for Alf, which took us concerning four months the archetypal time. I supervised the delegate for four nights before I saw that it had no way to inspect its results. Once it had a spec and a test environment, the rebuild took concerning two hours.
The agents construction AWS Emulator had the two from the start, in the community API models and in genuine AWS. An engineer built the scaffolding that runs them. An inner type came together complete a weekend and started gaining acceptance inside a month. Turning that into a sturdy resolution took much additional work.
Software norm in the AI era depends on the guardrails that engineers scheme about agents. In AWS Emulator, those guardrails are the fidelity tests verified against genuine AWS, a merge entrance alongside multiple safety agents that all assessment a alter for distinct ways to assault it alongside a broad code reviewer, and deterministic checks that halt agents from touching code they are not expected to. We anticipate agents to build and inspect most software, alongside engineers deciding what gets built and whenever the activity is correct. We are first in learning how engineers run teams of agents to build reliable, high-quality software, and the way AWS Emulator came to existence is a fine example of how that plant in practice. We anticipate to keep adding guardrails and refining how the agents build it.
What to cognize at initiate
The emulator code is released under CC0, a Creative Commons dedication to the community domain.
We volition portion additional concerning this activity at re:Invent. The complete commit former and all matter the agents have submitted are community in the GitHub repository, and its “things-that-do-not-work” directory holds the issues describing behaviors the agents established that do not yet equivalent genuine AWS.