Skip to content

Marketing, Benchmarking, and Stress Testing

To successfully market FW against giants like Laravel or Symfony, we need undeniable, reproducible data. Our marketing will rely on the concept of "Framework Productivity with Micro-framework Performance."

1. Performance Measurement

We will establish an /fw-bench repository in the ecosystem that performs automated testing on every PR.

  • Tools: We will use k6 (or wrk) for synthetic load generation.
  • Metrics:
    • Requests per second (RPS)
    • P95 and P99 latency (latency stability is a huge marketing point for async PHP).
    • Memory consumption per worker.
  • The "Hello World" Benchmark: Competing against Laravel Octane, Symfony Runtime, and Go's net/http to show we are competitive with compiled languages.
  • The "DB Heavy" Benchmark: Proving that asynchronous database connection pooling in Swoole/RoadRunner drastically reduces total latency compared to standard PHP-FPM pool bottlenecks.

2. Stress Testing the Persistent Runtime

The biggest flaw with persistent PHP runtimes (like Laravel Octane) is Memory Leaks and Shared State Bugs.

Preventing Memory Leaks

  • State Isolation: Singletons in FW are stateless. Handlers are instantiated per-request or depend only on immutable services.
  • Stress CI: Our CI will run an endpoint 1,000,000 times inside a Swoole worker. If memory usage grows by more than 5MB across the run, the CI pipeline will fail automatically.

Connection Leaks

  • Connection Pooling: FW will ship with a built-in Async Connection Pool for PostgreSQL/MySQL. The stress test will rapidly disconnect clients to ensure connections are safely returned to the pool, preventing connection exhaustion.

3. Modular Service Providers (MSPs) / Micro-Service Patterns

To support scaling from monolithic skeletons into massive architectures, FW supports MSPs:

  • Modules declare their own Route, Dependency, and Event constraints natively.
  • An MSP approach means developers can effortlessly tear a directory like modules/Billing/ out of the monolithic app-skeleton and deploy it as a standalone Microservice simply by dropping it into a fresh FW skeleton.

Engineered for Agents. Released under the MIT License.