Saya membangun aplikasi Instant Messenger di @Cloudflare. Butuh 1 hari, 3 file, 4 sumber daya... dan siap untuk diskalakan dari 0 hingga jutaan. Pekerja → auth & perutean Database D1 → menyimpan pengguna/pass Profil pengguna → pengguna & teman Percakapan LAKUKAN → pesan Blog sebagai balasan, tetapi teaser cepat di sini: Cloudflare/Actors Library membuat banyak hal ini menjadi mudah dengan properti persisten, manajemen koneksi soket web yang mudah, dan mengirim pesan ke semua pendengar. Tapi apa yang dilakukan setiap bagian? Autentikasi & Perutean (Pekerja + D1) Semua permintaan datang melalui Pekerja baik diautentikasi atau tidak. Jika tidak diautentikasi, tindakan yang tersedia adalah login atau mendaftar. Ketika diautentikasi, maka dapat meneruskan permintaan ke salah satu Objek Tahan Lama kami (pengguna atau percakapan) untuk membuat koneksi soket web. Semua informasi autentikasi pengguna disimpan dalam database D1 (simpan semuanya CF untuk contoh ini). Layanan Pengguna (Objek Tahan Lama) Tampilan daftar teman kami terhubung langsung ke Objek Tahan Lama pengguna kami melalui soket web. Ketika kami memperbarui status kami, kami mengirim pesan ke DO individu kami yang kemudian dapat disiarkan melalui RPC ke DO teman kami dan menentukan apakah mereka online untuk mengirimi mereka pesan soket web untuk pembaruan langsung. Di sinilah kami juga menyimpan daftar teman kami dalam database SQLite yang dijangkau oleh pengguna kami. Layanan Percakapan (Objek Tahan Lama) Setiap percakapan individu antara dua pengguna mendapatkan instance DO-nya sendiri. Tanggung jawab tunggalnya adalah menyimpan pesan, mengirim pemberitahuan (melalui soket) saat pesan baru dikirim, dan mengirim pemberitahuan saat pengguna mulai mengetik sehingga kita dapat melihat "Orang sedang mengetik..." TLDR; Membangun aplikasi untuk bersenang-senang demi menghidupkan kembali kenangan masa kecil yang nostalgia adalah... sepadan.