Repository navigation
Replies: 1 comment
|
On the deciding point: unchanged processes are left running. The current For B, two details matter:
Given your branch-versioned configs and independent lifecycles, I'd lean toward A. That's an architectural preference, not a maintainer endorsement or a measured capacity claim. A project-wide stop or bad aggregate update then affects one worktree instead of the fleet. Your proposed explicit per-instance socket and log paths fit the CLI; use I can't establish a safe 50–80-process ceiling or ten-daemon overhead from this code. Before choosing, I'd test your pinned version with two stacks: record their PIDs, add/remove a third, and check both PID stability and shutdown isolation. That directly exercises the property you need, independently of whether config reuse uses |
Uh oh!
There was an error while loading. Please reload this page.
Context. Local development on a single machine (macOS). We run up to ~10 independent
full-stack instances of the same app side by side — each one its own git worktree and
branch, with its own ports, Postgres database, Redis DB and Temporal namespace. Each
instance is 4–6 long-running processes (Rails, Vite, a Node BFF, a worker or two).
Instances get created and destroyed frequently, by humans and by coding agents, so a
small tool of ours provisions them and shows a cross-instance dashboard. We'd like
process-compose to own the processes — the built-in MCP server and
--read-onlymode area big part of the appeal on the agent-facing side.
Two shapes we're weighing:
A. One project per instance. N detached daemons (
-D, explicit UDS path each), eachwith its own
process-compose.yamlcommitted in that instance's worktree, so theprocess list is versioned with the branch it belongs to. Our tool starts/stops daemons and
fans out over the sockets for the dashboard.
B. One project total. A namespace per instance,
project updateto add and removenamespaces as instances come and go, one socket for everything.
I've read #377, #378, PR #385 and your
extendssuggestion there, plus #319 — so I knowthis is adjacent to ground already covered. Our case differs from #377 in one way that may
matter: our tool always knows the complete picture (it owns the instance registry), so
generating a full merged config for
project updateis straightforward for us.Questions
project update, what happens to processes whose config isunchanged — are they left running untouched, or restarted? If adding a namespace
restarts unrelated namespaces, B is out for us, since it would bounce a colleague's (or
another agent's) running stack.
project updateaimed at smaller edits than "add/remove a whole 5-process namespace several times an
hour"?
processes across ~10 namespaces?
The default log path looks user-scoped (
/tmp/process-compose-<user>.log), so I assumewe'd need to give each daemon its own
--log-fileand--unix-socketto avoidcollisions — is that the expectation, or is there a better convention?
extendsthe intended answer for "same 5 processes, different ports/env perinstance", or would you generate a config per instance and skip inheritance?
Not asking for features — just trying to build with the grain of the design rather than
against it. Thanks for process-compose; it's the only thing we found that fits
non-containerized multi-stack local dev.
All reactions