After 3 years running Rust in production for multiplayer infrastructure, Figma reports 10x latency improvements but warns about hiring challenges and compile-time costs.
핵심 요점
Rust's memory safety guarantees eliminated an entire class of production crashes that plagued their previous C++ implementation. Zero segfaults in 3 years of production operation across their multiplayer sync engine.
The biggest surprise was compile times — incremental builds averaged 45 seconds, which slowed iteration. They invested heavily in build caching and workspace splitting to bring this down to under 15 seconds.
Hiring Rust engineers remains the hardest challenge. They solved this by training existing Go/C++ engineers, finding that experienced systems programmers became productive in Rust within 6-8 weeks with dedicated mentorship.
전체 요약
Figma adopted Rust in 2023 for their multiplayer synchronization engine, replacing a C++ implementation that had grown increasingly difficult to maintain safely. The decision was driven by two factors: the need for C++-level performance and the desire to eliminate memory-safety bugs without a garbage collector.
The performance results exceeded expectations. P99 latency for document synchronization dropped from 120ms to 12ms, primarily because Rust's ownership model enabled lock-free data structures that would have been too error-prone in C++.
However, the team was candid about the costs. Compile times were significantly longer than their Go services, and the learning curve was steeper than anticipated. The borrow checker, while valuable, added friction to prototyping phases where ownership patterns weren't yet clear.
They wouldn't use Rust for everything — their API gateway and most backend services remain in Go, where the development speed and simpler deployment model are more valuable than raw performance. Rust is reserved for latency-critical paths.
전체 내용이 필요하신가요?
Figma Engineering 에서 원문 읽기 — 코드 샘플, 다이어그램, 더 깊은 맥락을 확인하세요.