Docs / Transparent Emulation

Transparent Emulation

No emulator is perfect. We believe in being transparent about what works, what does not, and what we do about it.

Why transparency matters

Local emulators are powerful tools, but they are not AWS. Developers deserve to know the difference before their code hits production. We would rather tell you upfront than let you discover gaps at 2am during a deployment.

Emulation is an engineering tradeoff. You trade perfect fidelity for fast feedback, zero cost, and full isolation. That tradeoff is worth it for the vast majority of development and testing workflows. But pretending the tradeoff does not exist helps no one.

What emulators do well

API compatibility

Same endpoints, same request/response formats, same error codes. Your application code does not know the difference between LocalEmu and real AWS.

Fast feedback loops

Sub-second response times versus minutes with real AWS. No waiting for CloudFormation stacks, no deploy-wait-test cycles. Change code, test immediately.

Cost elimination

Zero AWS bill for development and testing. Run as many resources as your machine can handle without worrying about forgotten instances or runaway costs.

Isolation

Each developer gets their own environment. No shared accounts, no resource conflicts, no stepping on each other's infrastructure.

Offline development

Works without internet. Airplane mode, VPN issues, spotty coffee shop WiFi: none of it matters. Your development environment is entirely local.

What no emulator can do

Replicate real network conditions

Latency, packet loss, DNS resolution, cross-region transfer times. A local emulator responds in microseconds over localhost, while real AWS involves real networks.

Match exact AWS internal behavior

Eventual consistency edge cases, undocumented behaviors, internal retry logic, service-specific quirks that only manifest at scale. AWS is a living system with behaviors that evolve constantly.

Run real managed services

The actual DynamoDB storage engine, real Lambda microVMs, genuine Kinesis shards. Emulators implement the API contract, not the underlying infrastructure.

Guarantee version parity

AWS updates services daily. Emulators follow. There will always be a gap between what AWS deploys and what any emulator supports.

Simulate global infrastructure

Regions, availability zones, edge locations, cross-region replication. These are physical infrastructure concepts that cannot be meaningfully replicated on a single machine.

What LocalEmu does about it

Instead of ignoring these gaps, we build features that help you catch real-world issues during local development.

IAM Policy Enforcement

Set IAM_ENFORCEMENT=1 and LocalEmu evaluates every API call against the full AWS IAM policy evaluation algorithm. Missing permissions, incorrect resource ARNs, malformed policies: you catch them locally instead of in production. Learn more.

Throttling Simulation

Set SIMULATE_THROTTLING=1 and LocalEmu returns per-service AWS throttling error codes. Test your retry logic, backoff strategies, and circuit breakers before they matter.

Latency Injection

Set SIMULATE_LATENCY=1 and LocalEmu adds realistic per-service delays to API responses. Test timeout handling, loading states, and performance assumptions.

Lambda Cold Starts

Set LAMBDA_COLD_START_DELAY=3 and LocalEmu simulates cold start behavior with a configurable delay in seconds. Test startup optimization and warm-up strategies locally.

Docker-backed services

EC2 instances run as real Docker containers. RDS databases run actual PostgreSQL or MySQL in Docker. ECS, EKS, and OpenSearch all use real software in containers, not just API stubs. You get actual behavior, not mocked responses.

Our recommendation

A balanced approach works best: use LocalEmu for development and unit/integration testing. Run critical tests against real AWS in staging. This is not a limitation of LocalEmu, it is good engineering practice.

Even if AWS gave you a perfect local emulator, you would still want to test in a real environment before production. Network behavior, IAM policies in context, service limits, cross-account access: these are things that only a real AWS environment can validate with certainty.

LocalEmu's job is to make the 95% of your development cycle that does not need real AWS as fast, cheap, and reliable as possible. For the remaining 5%, use the real thing. That is not a compromise. That is a workflow that respects both your time and your production reliability.