News

Laravel Octane

Published

Taylor Otwell gave Laracon Online 2021 attendees a first glimpse of Laravel Octane—a unified first-party package for running highly performant Laravel utilizing environments like Swoole and RoadRunner.

Octane delivered roughly 6,000+ requests per second in some "hello world" examples under a load of ~50 concurrent requests using four concurrent threads during the demo.

Here's an example of the wrk command used during the demo as a rough benchmark example:

wrk -t4 -c50 http://localhost:8000/hello-world

How Does it Work?

Octane's entry point is an Artisan console command(octane:start) that will run either Swoole or RoadRunner. You can specify which technology to use and how many threads to run based on your environment's CPU threads:

artisan octane:start --workers=8 --server=roadrunner

Swoole and RoadRunner utilize coroutines that enable PHP to run more efficiently by forking several worker processes based on CPU core numbers. Using Swoole/RoadRunner allows better app startup efficiency, coupled with PHP OPcache to minimize overhead by storing byte code in shared memory.

PHP workers remain active between requests (you can cycle them after "x" requests via artisan flag) and are ready to receive new requests. Eliminating framework startup time has a significant impact on performance for applications with heavy HTTP workloads.

What is the Purpose?

Typical applications don't demand outlandish requests-per-second we see in these early demos of Octane. However, the need for high availability PHP applications is common, and Laravel is in a unique position to guarantee that framework-level code works seamlessly with tools like Swoole and Octane.

First-party support from Laravel for these technologies will be a considerable breakthrough in modern approaches to scaling PHP applications. The entire PHP ecosystem will benefit from these efforts.

When will Laravel Octane be released?

The first version of Laravel Octane was released since May 12th, 2021.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Decide with Jev: Laravel AI That Answers with a Probability image

Decide with Jev: Laravel AI That Answers with a Probability

Read article
JetBrains Air: Run AI Coding Agents in JetBrains IDEs image

JetBrains Air: Run AI Coding Agents in JetBrains IDEs

Read article
Memoize Tagged Cache Reads in Laravel image

Memoize Tagged Cache Reads in Laravel

Read article
Eloquent Refreshes: Load Generated Columns After Save image

Eloquent Refreshes: Load Generated Columns After Save

Read article
Laravel AI SDK 1.0 Adds Classification and Tool Approvals image

Laravel AI SDK 1.0 Adds Classification and Tool Approvals

Read article
Tagged Memoized Cache and Model Refreshes in Laravel 13.33 image

Tagged Memoized Cache and Model Refreshes in Laravel 13.33

Read article