Architecture
This page explains how requests flow and why long-running requests cause RAM pressure.
Request Flow (High Level)
mermaid
flowchart LR
U[User Browser] --> CF[Cloudflare Edge]
CF --> NG[Nginx]
NG --> FPM[PHP-FPM Worker]
FPM --> APP[Laravel App]
APP --> NG
NG --> CF
CF --> UWhat matters
- Cloudflare CF-Ray shows Edge location, not server location.
- PHP-FPM handles one request per worker.
- Memory used by a worker is held until request completes.
Memory Pressure Model
mermaid
flowchart TD
A[Request arrives] --> B[PHP-FPM worker allocated]
B --> C[Worker holds RAM during execution]
C --> D{Request completes in time?}
D -- Yes --> E[Response sent, worker reused]
D -- No --> F[Timeout or OOM risk increases]
F --> G[Linux OOM-killer may kill php-fpm]
G --> H[Nginx sees: Connection reset by peer]Key Formula
! Memory Pressure = (Avg RAM per request) × (Concurrency) × (Time held)
Where Heavy Work Belongs
mermaid
sequenceDiagram
participant User
participant Web as Web Request
participant Q as Queue
participant Worker as Worker
User->>Web: HTTP request
Web->>Q: Dispatch Job
Web-->>User: 202 Accepted / "Processing"
Worker->>Q: Pick Job
Worker->>Worker: Heavy processing
Worker-->>Q: Done
Campus On Click