Menelusuri perjalanan Swoole dari lahirnya di Tencent pada 2012 sebagai ekstensi networking C++ untuk PHP hingga menjadi fondasi aplikasi realtime modern, memahami keterbatasan PHP-FPM yang memicu kelahiran Swoole, perbedaan Swoole vs OpenSwoole, serta mengapa Swoole menang benchmark performa pada Juli 2026.

Setelah di episode 0 kita menyiapkan environment — PHP 8.3+ dan ekstensi Swoole 6.x terinstall — pada episode ini kita menarik napas sejenak dan memahami mengapa Swoole ada. Sejarah sebuah teknologi mungkin terasa tidak penting, padahal justru di sanalah letak alasan mengapa desainnya seperti sekarang.
Mengapa harus memahami sejarah Swoole? Karena Swoole tidak lahir dari ruang rapat perusahaan, melainkan dari kebutuhan nyata: PHP dianggap "tidak bisa" menangani koneksi serentak puluhan ribu. Memahami asal-usulnya akan menjelaskan keputusan-keputusan desainnya — mengapa ia memakai multi-process, mengapa ada coroutine, dan mengapa ia menjadi fondasi framework modern seperti Hyperf.
PHP-FPM (FastCGI Process Manager) adalah model eksekusi PHP yang paling umum. Alurnya kira-kira begini:
Masalahnya ada di langkah 3 dan 4. Setiap request mem-bootstrap ulang seluruh aplikasi — inilah yang disebut per-request lifecycle. Kompilasi ulang, loading ulang, dan pembongkaran memory terjadi jutaan kali sehari. Tambahkan fakta bahwa PHP-FPM memproses satu request per proses dan memblokir saat menunggu I/O (database, HTTP call), maka untuk workload realtime seperti chat atau notifikasi, PHP-FPM adalah pilihan yang sangat boros.
| Aspek | PHP-FPM | Swoole |
|---|---|---|
| Lifecycle | Per-request (bootstrap ulang tiap request) | Long-running (state bisa dipertahankan) |
| Concurrency | Satu request per proses (blocking) | Coroutine di dalam worker (non-blocking) |
| State in-memory | Tidak bisa (hilang setiap request) | Bisa (Table, koneksi, cache) |
| Koneksi serentak | Ribuan (dengan banyak proses) | Puluhan ribu (event-driven) |
Swoole dikembangkan oleh Tencent dan dirilis sebagai proyek open source pada 2012. Ditulis dalam C/C++ sebagai ekstensi PHP, Swoole membawa tiga hal yang sebelumnya mustahil di PHP murni:
Nama "Swoole" diambil dari kata Mandarin "Suwu" (速沃, artinya efisien/cepat) yang disesuaikan agar mudah diucapkan. Swoole kemudian menjadi fondasi bagi Swoft (2018) dan Hyperf (2019), dua framework PHP coroutine yang lahir di China dan kini dipakai global.
Pada 2021, terjadi fork pada versi Swoole 4.7.1. Sebagian komunitas, dipimpin oleh tim yang kemudian membentuk Open Swoole, mengambil codebase dan mengembangkannya sebagai proyek terpisah yang berfokus pada keamanan, dokumentasi, dan tata kelola komunitas yang lebih terbuka. Di 2026, kalian punya dua pilihan:
| Aspek | Swoole (phpswoole/swoole) | OpenSwoole (openswoole/openswoole) |
|---|---|---|
| Versi terkini | 6.2.1 | 26.2.0 (rilis 28 Feb 2026) |
| Dukungan PHP | PHP 8.5 | PHP 8.5 |
| Keunikan | Ekosistem resmi, image Docker phpswoole/swoole | Native PHP Fiber coroutine context, io_uring reactor, Xdebug di coroutine, event loop lag metrics |
| Komunitas | Tim inti Swoole | Open Swoole Foundation |
pecl | pecl install swoole | pecl install openswoole |
Perbedaan API kedua cabang ini sangat kecil — contoh kode di series ini memakai API Swoole\... yang kompatibel di keduanya. Hal yang lebih penting: pilih satu dan konsisten, karena keduanya tidak boleh terinstall bersamaan dalam satu PHP.
Tip
Untuk series ini kita memakai Swoole 6.x resmi. Namun bila kalian bekerja di tim yang memilih OpenSwoole, hampir seluruh kode di series ini tetap berjalan tanpa perubahan — hanya namespace dan nama paket pecl yang berbeda.
Pada Juli 2026, sebuah benchmark terhadap NpgsqlRest (API REST berbasis PostgreSQL) menghasilkan angka yang menarik: Swoole menang di 14 dari 38 kombinasi pengujian — termasuk kombinasi dengan memory rata-rata hanya 24 MB, jauh lebih kecil dibanding lawan-lawannya, termasuk service berbasis Go. Ini membalik asumsi lama bahwa "PHP pasti kalah dari Go".
Mengapa Swoole bisa menang? Karena dengan coroutine, Swoole menangani concurrency bukan dengan satu goroutine per koneksi, melainkan dengan kumpulan worker berukuran tetap yang berpindah-pindah tugas secara efisien — menghasilkan latensi rendah dan jejak memory yang kecil. Benchmark macam ini bukan untuk "membuktikan" PHP paling hebat, melainkan bukti bahwa di workload yang tepat, Swoole adalah pilihan arsitektur yang serius.
Ada empat alasan kuat menjadikan Swoole pilihan di proyek kalian:
| Alasan | Arti Praktis |
|---|---|
| Realtime | WebSocket native: chat, notifikasi, kolaborasi tanpa server terpisah |
| Efisiensi resource | Coroutine + multi-worker: ratusan ribu koneksi dengan memory kecil |
| State in-memory | Table/Atomic/Redis pool berbagi state antar request tanpa tambahan infra |
| Produktivitas PHP | Tetap menulis PHP yang sudah kalian kenal, bukan bahasa baru |
Swoole tidak menggantikan PHP-FPM untuk semua workload — untuk aplikasi CRUD sederhana, FPM masih lebih sederhana. Swoole unggul saat kalian butuh realtime, concurrency tinggi, atau microservices internal.
| Tahun | Tonggak |
|---|---|
| 2012 | Swoole dirilis open source oleh Tencent |
| 2018 | Swoft — framework Swoole coroutine pertama |
| 2019 | Hyperf — framework coroutine modern muncul |
| 2021 | Fork Swoole 4.7.1 → lahir OpenSwoole |
| 2025 | Swoole 6.x, dukungan penuh PHP 8.5 |
| 2026-02 | OpenSwoole 26.2.0: Fiber native, io_uring, event loop metrics |
| 2026-07 | Benchmark NpgsqlRest: Swoole menang 14/38 kombinasi, memory 24 MB |
Pada episode 1 ini, kalian telah menelusuri mengapa Swoole ada dan mengapa ia menjadi pilihan serius di 2026.
Inti yang harus dibawa pulang:
Di episode 2 selanjutnya, kita akan membedah arsitektur & model concurrency Swoole — bagaimana Master dan worker processes bekerja, peran event loop dan coroutine scheduling, serta memory model per-worker yang membuat semuanya aman. Sampai jumpa di episode 2!