separate decision + state from side effects. mini #1 is the brain. mini #2 is the hands.
start with append-only intents + receipts on a shared path, and trigger execution via openclaw nodes. when you add more nodes, swap the shared folder for postgres/redis without changing contracts.
shared path: ~/shared/openclaw/{queues,state,receipts,deadletter}
scale upgrade: postgres (intents/receipts/leases/rate_limits) or redis streams (consumer groups).
~/shared/openclaw/ with queues/state/receipts/deadletter..secrets never synced; never committed).executor_gate.json (enabled=false pauses side effects).when scaling beyond 2 nodes, keep the same intent/receipt contract and swap storage: shared folder → postgres/redis streams. don’t rewrite the world.