
Why We Wrote a Process Manager in Rust (and what surprised us)
We build developer tools at Empellio. PM2 was always just there — install it, forget it, it works. Until we started asking: how much of the overhead is actually necessary? That question turned into Oxmgr — a Rust-based PM2 alternative. Here's what we learned. Why Rust and not Go? Go would've been faster to write. But we wanted two things Go doesn't give for free: Memory safety without a garbage collector Predictable latency without GC pauses For a process manager running 24/7 and keeping your services alive — that tradeoff mattered. Surprise #1: Polling is the wrong mental model Our first daemon used a tick-based loop. Every X milliseconds — check processes, update metrics, handle restarts. The problem: if a process crashes 1ms after a tick, you wait almost the entire interval before reacting. The fix? Let the OS tell you when something happens instead of constantly asking. When a child process exits, handle the event immediately. No polling. No waiting. Just react. Surprise #2: The be
Continue reading on Dev.to DevOps
Opens in a new tab




