[Nix-dev] hotswappable self managing services in nix

stewart mackenzie setori88 at gmail.com
Sun Nov 27 04:23:02 CET 2016


Let me rephrase the question.

Is it possible to build a highly available system on nix such that SLA
uptimes of 9 9s. (99.9999999 % uptime) are achievable?

If so what primitives does nix offer to allow this to happen?

Such primitives should be: the ability for nix to invoke the
hotswapping capabilities of a live running system.

Now just connecting to Erlang and making changes isn't good enough.
Why? - nix cannot see those "imperative" changes. Git vs svn, git
takes the global view and svn the file view. Git got it right, you
need to factor in the entire repo's changes. Nix gets it right too by
looking at this from an entire system perspective, so I'm seeking a
way to introduce change to a live fractalide system from a nix level,
though it mustn't be a "connect to fractalide via ssh and change it
there" approach. Making changes to Erlang via ssh under Nix management
is like having a declarative system then introducing imperative
mechanisms.

I need a formalized method to ensure global determinism yet be able to
make changes to a live running system from nix.

Are there any Erlangers here who achieve huge uptimes on nix? If so
how do you do it? How do you make use of Erlang's hotswapping
mechanisms yet retain the lovely system wide determinism nix offers.

kr/sjm


More information about the nix-dev mailing list