A small "operation" note: immutable is an was an ancient kind-of dream, having something that's always in a known state even if it's run for significant amount of time. Formally it should give easy debug due to a real and substantial reproducibility.<p>In practice it never works well though: first immutable means far longer to update and these days updates are a continuous stream, secondly even if the system is really immutable the complete infra tend to be not, making the immutable part next to useless in reproducibility terms.<p>In modern terms a new concept born "idempotent" witch FORMALLY means "you can run it countless of time, it will works the same and do not even re-do already done steps, it ensure consistency of a system final state no matter the initial one". Such concept have more more practical applications, again in theory, but in practice it fail to be really idempotent beside trivial use cases. From mere Ansible Playbooks for an infra to NixOS idempotence is partially there but results tend to be not.<p>Long story short: IMVHO the road have a name DAMN SIMPLER DESIGN, simpler infra, as the sole way to keep anything working and easy to restore when it does not.<p>A bottomline: reproducibility for a server infra have some reasons, for desktops... Well... IMO it's a bit overrated in the era of "endpoint".