Rust enables modular monoliths
Developers are arguing that Rust’s ownership model and trait system make modular monoliths practical, reducing distributed system complexity for fast‑growing startups. The approach emphasises single‑process modularity over microservice proliferation to simplify deployment and debugging while keeping clear module boundaries. (x.com)
Rust is pushing one old idea back into startup architecture: keep the app in one process, but split the code into hard module boundaries instead of many networked services. (martinfowler.com) A modular monolith is one deployable application with separate internal domains, such as billing, accounts, or search, rather than a fleet of separately deployed services. Martin Fowler wrote in 2015 that many successful microservice stories started with a monolith, while teams that began with microservices often ran into trouble early. (martinfowler.com) Rust’s pitch in that debate starts with memory management. The Rust Book says ownership is a compile-time rule system for how code uses memory, so the compiler rejects violations before the program runs. (doc.rust-lang.org) Rust’s other selling point is traits, which are contracts for shared behavior across different types. The Rust Book describes traits as a way to define a common set of methods, which lets teams share interfaces across modules without tightly coupling the underlying code. (doc.rust-lang.org) That combination is showing up in production rewrites. In a June 6, 2025 post, InfluxData engineer Logan Cox said the company rebuilt core account and resource management application programming interfaces from Go microservices into a single Rust monolith for InfluxDB Cloud Dedicated. (logan-cox.com) Cox said the rewrite aimed to cut infrastructure and development complexity, standardize more internal services on Rust, and fit a team model of “one team, one backend service, one language.” He also said the simpler shape helped for customer Kubernetes deployments, including air-gapped environments. (influxdata.com) The case against microservices has not changed much. Fowler’s microservices guide says distributed systems add slow and failure-prone remote calls, eventual consistency problems, and operational overhead that requires a mature operations team. (martinfowler.com) The case for microservices has not disappeared either. Fowler also says they can enforce strong module boundaries, allow independent deployment, and let organizations mix languages and storage systems across large teams. (martinfowler.com) What Rust changes is where some teams think they can draw the line. Instead of using the network to force separation between teams and domains, they are betting Rust’s compiler can enforce more of that discipline inside one binary. (doc.rust-lang.org)