Platform Update

Kenapa Bacalah Kini Lebih Stabil: Kami Pisahkan Backend Kepada 5 Edge Worker

Kami mencapai had CPU percuma Cloudflare — bab gagal dimuatkan, log masuk error, pembayaran tergantung. Ini cara kami selesaikan masalah itu.

R

Redaksi Bacalah

Pasukan Kejuruteraan

6 Julai 2026 · 6 min baca
K

Kalau anda pernah alami error di Bacalah dalam beberapa bulan lepas — bab yang tak nak load, log masuk yang timeout, atau pembayaran yang berpusing-pusing tanpa kesudahan — artikel ini akan terangkan apa yang berlaku, dan apa yang kami buat untuk selesaikannya.

Masalah: Satu Worker Buat Semua Benda

Bacalah dahulunya berjalan di atas satu Cloudflare Worker tunggal. Satu proses sahaja yang handle semuanya: log masuk, baca bab, pembayaran, fungsi komuniti, dan task berjadual seperti hantar notifikasi emel.

Pelan percuma Cloudflare memberi setiap Worker hanya 10ms masa CPU setiap request. Kedengaran cukup — dan untuk benda mudah macam serve halaman statik, memang cukup. Tapi ciri-ciri web moden bukan mudah. Verify sesi login, query sejarah bacaan, decrypt data pembayaran, semak watermark — semua operasi ini bertimbun dengan cepat.

Bila trafik meningkat atau bila satu request yang berat tiba pada waktu yang salah, request akan melebihi had CPU dan Cloudflare akan tamatkan proses itu separuh jalan. Dari perspektif pengguna: halaman kosong, spinner yang tak habis-habis, atau mesej error yang membingungkan.

Paling menyusahkan ialah ia tak boleh dijangka. 95% masa semua berjalan lancar. Lepas tu tiba-tiba tidak — dan corak kegagalan tu memang susah nak predict.

Penyelesaian: Lima Worker Khusus

Kami susun semula keseluruhan backend kepada lima Cloudflare Worker berasingan, setiap satu bertanggungjawab untuk satu domain sahaja:

WorkerTanggungjawab
novel-authLog masuk, daftar, Google OAuth, urus sesi pengguna
novel-coreBaca bab, katalog novel, gambar kulit, penjadualan
novel-payBeli syiling, pengeluaran, integrasi Billplz & Finverse
novel-communityKomen, pengesahan KYC, alat penulis
novel-cronKerja berjadual: terbit bab, digest mingguan, laporan

Setiap worker dapat peruntukan CPU sendiri. Apa yang dulunya lima tenant bersaing dalam satu peruntukan dikongsi, kini menjadi lima proses bebas, setiap satu disesuaikan dengan beban kerja sebenarnya.

Apa Kesannya Untuk Anda

Respons lebih laju. Setiap worker lebih ringan — ia hanya load kod yang diperlukan. Worker auth tak bawa logik pembayaran. Worker bacaan tak bawa kod hantar emel. Bundle lebih kecil bermakna startup lebih cepat.

Kegagalan terpencil. Sebelum pemisahan, kalau servis pembayaran kena CPU spike, ia boleh perlahankan proses baca bab. Sekarang timeout pembayaran kekal dalam novel-pay dan tak ada langsung kesan pada novel-core. Anda boleh teruskan membaca walaupun pembayaran sedang diproses.

Lebih mudah untuk dikembangkan. Bila Bacalah membesar, kami boleh naik taraf worker individu tanpa menyentuh yang lain. Bila kami perlukan lebih CPU untuk authentication (lebih ramai pengguna log masuk), kami naik taraf satu worker sahaja — bukan seluruh platform.

Keputusan

Selepas pemisahan ini:

Apa Seterusnya

Langkah berikut ialah tambah routing domain khas supaya setiap worker berada di bawah api.bacalah.app dan bukannya URL dalaman. Kami juga akan tambah amaran error per-worker supaya kami boleh kesan CPU spike sebelum pengguna sedar.

Bacalah masih dalam fasa pertumbuhan. Seni bina yang anda gunakan hari ini dibina untuk berkembang bersama platform ini.

— Pasukan Kejuruteraan Bacalah

R

Ditulis oleh

Redaksi Bacalah

Pasukan Kejuruteraan — Bacalah

Artikel Berkaitan

Platform Update

Selamat Datang ke Bacalah — Platform Novel Web Malaysia

4 min baca

Platform Update

Sistem Syiling Bacalah: Cara Kerja & Faedah

5 min baca

Semua artikel BM