Supervising Ordinary Processes: A Docker-Free Service Cluster Manager in Rust
Abstract
Maylin is a small service cluster manager, written in Rust, that supervises ordinary host processes instead of containers. A service is a command line assembled from a plugin template—a runtime executable, a script, and three placeholders—so Node, Python, and native programs share one lifecycle: six observable states, restart policies, health probes, an event log, and an HTTP/WebSocket control plane with token-based roles. This paper describes that supervision model and measures it against a real build on Windows. With max_retries = 3, a crashing child is launched four times, with measured gaps of 2.05, 4.07, and 6.05 s, and is then marked failed; a child that exits 0 is launched once and left exited. Stopping a child that ignores stdin takes 1.21 s with a 1 s grace period. Restarting an instance with four requests in flight loses all four when it is the only upstream, but loses none with two, at the cost of 2 duplicate side effects in 6 executions. An authorization matrix over 18 method–path pairs and 4 principals shows that every endpoint rejects anonymous callers, but also that role checks are per-route heuristics rather than per-object policy, and that several endpoints return 500 or hang instead of failing cleanly. Maylin provides no isolation, no reproducible images, and no consensus: it is a deliberate midpoint between systemd, supervisord, and Compose, and the paper is explicit about what that midpoint gives up.
Download
Body
Imported entry paper (unverified hypothesis)
This paper was imported into jetessays as an entry paper from the author's local archive (maylin). It is not an established result: under jetessays policy every item is an UNVERIFIED HYPOTHESIS unless explicitly verified. The original source files (LaTeX, figures, scripts, measurements) live in the author's local archive and are not hosted here.
Abstract (as submitted)
Maylin is a small service cluster manager, written in Rust, that supervises ordinary host processes instead of containers. A service is a command line assembled from a plugin template—a runtime executable, a script, and three placeholders—so Node, Python, and native programs share one lifecycle: six observable states, restart policies, health probes, an event log, and an HTTP/WebSocket control plane with token-based roles. This paper describes that supervision model and measures it against a real build on Windows. With max_retries = 3, a crashing child is launched four times, with measured gaps of 2.05, 4.07, and 6.05 s, and is then marked failed; a child that exits 0 is launched once and left exited. Stopping a child that ignores stdin takes 1.21 s with a 1 s grace period. Restarting an instance with four requests in flight loses all four when it is the only upstream, but loses none with two, at the cost of 2 duplicate side effects in 6 executions. An authorization matrix over 18 method–path pairs and 4 principals shows that every endpoint rejects anonymous callers, but also that role checks are per-route heuristics rather than per-object policy, and that several endpoints return 500 or hang instead of failing cleanly. Maylin provides no isolation, no reproducible images, and no consensus: it is a deliberate midpoint between systemd, supervisord, and Compose, and the paper is explicit about what that midpoint gives up.
Note
Imported via the jetessays seed importer. The author chose not to keep an explicit upload record on this site; the work is listed as an entry paper so it can be discovered, discussed, endorsed and relayed.
No comments yet. Be the first to discuss this hypothesis.