VOOZH about

URL: https://thenewstack.io/why-your-rust-adoption-will-probably-fail-and-how-to-beat-the-odds/

⇱ Why Your Rust Adoption Will Probably Fail (And How To Beat the Odds) - The New Stack


TNS
SUBSCRIBE
Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter in the past. Click the button below to open the re-subscribe form in a new tab. When you're done, simply close that tab and continue with this form to complete your subscription.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!

We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.

What’s next?

Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.

Follow TNS on your favorite social media networks.

Become a TNS follower on LinkedIn.

Check out the latest featured and trending stories while you wait for your first TNS newsletter.

PREV
1 of 2
NEXT
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
Thanks for your opinion! Subscribe below to get the final results, published exclusively in our TNS Update newsletter:
NEW! Try Stackie AI
From clobbered drafts to real-time sync
Apr 14th 2026 10:00am, by David Moore
TypeScript 6.0 RC arrives as a bridge to a faster future
Mar 14th 2026 9:00am, by Darryl K. Taft
Mastra empowers web devs to build AI agents in TypeScript
Jan 28th 2026 11:00am, by Loraine Lawson
2025-09-06 10:00:33
Why Your Rust Adoption Will Probably Fail (And How To Beat the Odds)
Programming Languages / Rust / Software Development

Why Your Rust Adoption Will Probably Fail (And How To Beat the Odds)

AWS engineer Russell Cohen reveals why most organizations fail at Rust adoption — and what the successful ones do differently.
Sep 6th, 2025 10:00am by Darryl K. Taft
👁 Featued image for: Why Your Rust Adoption Will Probably Fail (And How To Beat the Odds)
Photo by the blowup on Unsplash.

Russell Cohen has watched hundreds of teams try to adopt Rust at Amazon over the past decade. Most of them screw it up.

Cohen, a senior software engineer who leads Rust adoption efforts at AWS, does not sugarcoat it. Speaking at the RustConf 2025 event this week, he laid out exactly why most organizations fail at Rust — and what the few successful ones do differently.

Cohen said he gleaned four key insights regarding the success of Rust projects. Teams must: have a real reason to use Rust; find, grow and empower Rust pragmatists; learn (or build) new tools; and build operational capabilities early.

The $100K Rewrite Nobody Asked For

Meanwhile, here’s how it typically goes wrong, Cohen described. In 2024, a Rust enthusiast at Amazon convinced their team to build a new service in Rust instead of Python. The service worked fine. Three months later, the project got reorganized under a different team.

“They took a fully working service and rewrote it from scratch in Java,” Cohen said.

Why would anyone throw away working code? Because the new team looked at the Rust codebase and saw a foreign ecosystem, they would have to learn from scratch. They had deadlines to meet and considerable Python expertise already in-house. The Rust rewrite made zero business sense, he noted.

“When this team inherited the service, they didn’t just see Rust code; they saw an entire stack,” Cohen explained.

The 10 Times Improvement Win That Actually Mattered

But Cohen also told a different story. Amazon’s Fire TV team was dealing with aging hardware — millions of devices that were not getting any younger. Memory was the constraint, and years of Java optimizations had hit diminishing returns, he said.

However, one engineer tried Rust. “The difference was huge. They were able to cut memory usage, not just a little bit, but by 10x,” Cohen added.

That kind of improvement gets executive attention. But the key difference was “they did not try to rewrite the entire world with Rust,” he added. They found clean API boundaries and replaced components piece by piece.

The reason the effort succeeded was that Fire TV had an actual problem that Rust solved dramatically. The first team just thought Rust was cool, Cohen suggested.

‘We Like Rust’ Is Not a Business Case

Cohen’s rule is that you need “at least one order of magnitude improvement over the existing technology.”

“That’s a lot. That is not a 10% speed up,” he said. “If your problem is a theoretical problem that you might hit in the future, I think you’re going to have a very hard time hitting that bar.”

At Amazon, teams mostly choose Rust for tail latency and memory usage — not generic performance. If you’re coming from Java, rewriting in Rust won’t automatically make things faster. “The JVM is an incredible piece of engineering,” Cohen pointed out. Years of Java optimizations don’t just disappear because you switched languages.

Moreover, he explained that he knows a team that spent years trying to rewrite a Java service because GC pauses were killing their P99 performance. It seemed like the perfect Rust use case. But “it took them multiple years just to get to parity, because there were decades of optimizations in the service they were trying to rewrite.”

Even worse, “The Java code kept getting faster while they were in this multiyear rewrite effort,” he said.

The Expert Problem

According to Cohen, teams with a Rust expert are 40% less likely to give up early. Teams without one report that Rust is harder to build with and deploy.

But you can’t just hire your way out of this. “The people you need to make Rust adoption successful; they’re not a Rust expert that gets air dropped into your company,” Cohen said. “It’s the people who know how to be effective in your organization who now become a Rust expert.”

These aren’t the evangelists posting on Reddit about memory safety. They’re pragmatists who will write bash scripts to make Rust work with your build system, he noted. They teach, they build missing tools, and they figure out how to integrate Rust with whatever infrastructure you already have.

The Three-Month Slog

Cohen described a pattern of learning Rust. Month one involves reading the book, maybe a small pull request. Month two: “Some deep soul searching with the borrow checker, some dark places, and this is where people either push through and learn to think in Rust or they give up,” he said.

Month three: finally productive. “They aren’t experts, but they know enough to unstick themselves.”

But that’s only if they have somewhere to turn for help. Without support, “the timeline either can become much longer or people give up.”

The Fire TV team cracked this with group coding sessions — Advent of Code problems with everyone in a room, one person driving, everyone watching. “Beginners can learn directly, and the experts can learn by teaching.”

Tool Roulette

“Rust is just not as mature as a lot of other language ecosystems,” Cohen admitted. That means gaps. Lots of them.

When Fire TV struggled with binary size, they found cargo-bloat — a tool that shows exactly what is bloating your artifacts. Obvious in retrospect, but “everyone had to learn that knowledge somewhere.”

Ironically, the tool did not work on their embedded platform. So, they fixed it and contributed back upstream. That’s the pragmatist mindset in action, he said.

Yet sometimes the gap is bigger. For instance, Amazon’s Aurora database team needed to test distributed systems under network failures. No good tool existed for async Rust. So, they spent months building “turmoil,” which “remains a key component of their capability, and the ability of many teams to test their system,” Cohen said.

The 2 a.m. Reality Check

The tooling problem gets dangerous in production. Cohen told a story about a team whose service was slow in load tests: “Our service is slow. Have you looked at a flame graph?”

Getting flame graphs from serverless environments is not easy. The team had to learn new tools, how to read them and what metrics mattered. But they found the problem. “They were compiling a regular expression for every single request,” he said. They fixed that and gained a 10 times performance improvement.

“Without flame graphs, they’re just making educated guesses,” Cohen said. The alternative — figuring this out at 2 a.m. when your service is melting down — is way worse, he noted.

Another team saw mysterious performance problems for weeks before discovering that their memory allocator was returning memory to the OS during drop operations, stalling the entire async runtime. It took “weeks using esoteric Linux tools” to track down.

Pay Now or Pay Later

Cohen credits an Amazon engineer who wrote Amazon’s first Rust commit back in 2016, who put it simply: “Rust forces you to pay your technical debt upfront when it’s cheapest. Rearchitecting your application to avoid a race condition is cheaper than debugging in front. Teams that are successful with Rust have to expect some degree of upfront pain knowing that it’s going to be worth it.”

Indeed, the teams that succeed expect upfront pain and plan for it. They budget time for learning. They invest in tooling early. They accept that the existing Java/Python playbook doesn’t apply, he said.

The teams that fail treat Rust like a drop-in replacement and then act surprised when it’s not.

The Uncomfortable Truth

Cohen indicated that he is not trying to talk anyone out of using Rust. But he said he’s seen too many failed adoptions to pretend it’s easy.

“You can’t underestimate the cost of introducing Rust into an organization,” he said. The language might be great, but organizational change is expensive. Really expensive.

For the right problems — tail latency, memory usage, reliability — Rust can be transformative. But “if you’re introducing Rust or any new technology to an organization, you need to have a real reason,” Cohen said.

The future of Rust is not just better syntax or faster compilation. It’s “building an ecosystem so good that choosing Rust becomes obvious,” he said.

TRENDING STORIES
Darryl K. Taft covers DevOps, software development tools and developer-related issues from his office in the Baltimore area. He has more than 25 years of experience in the business and is always looking for the next scoop. He has worked...
Read more from Darryl K. Taft
SHARE THIS STORY
TRENDING STORIES
AWS is a sponsor of The New Stack.
SHARE THIS STORY
TRENDING STORIES
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.