Shared-Nothing Architecture
A shared-nothing architecture is a design where each unit of work, a request, a process, a node, owns all the state it needs and shares none of it with any other unit. Nothing survives between units and nothing is mutated by more than one of them at a time.
Traditional PHP is shared-nothing by default: each HTTP request runs in its own process or thread, starts from a clean state, and ends in oblivion once the response is sent. This gives PHP several properties for free, without any framework or operational discipline needed to obtain them elsewhere: fault isolation, since a fatal error in one request cannot corrupt the state of another; horizontal scaling, since adding a worker or a server does not require coordinating shared state; and simple memory management, since a leak or an accumulation of state cannot outlive the request. PHP-FPM’s pool of worker processes is the standard implementation of this model.
The trade-off is that anything meant to persist or be shared, a session, a cache, a queue, has to be pushed out to an external store, and any workload that legitimately wants to hold state across many operations, a long-running queue worker, a WebSocket server, a job that calls several APIs concurrently, sits outside what the shared-nothing model was built for and needs its own answer, such as coroutines or an external message queue.