Dengan arsitektur Remote Procedure Call (RPC) tradisional, ada tantangan inti: produsen dan konsumen harus selaras dalam skala dan waktu. Jika produsen Anda mengirim terlalu banyak data untuk ditangani oleh konsumen Anda atau jika konsumen atau layanan hilir Anda menjadi tidak tersedia, acara akan dijatuhkan. Masalah ini diperparah dengan banyak konsumen yang perlu memproses data secara independen. Misalnya, backend e-commerce dapat mengeluarkan acara ketika transaksi selesai, yang perlu dibaca oleh sistem analitik dan layanan deteksi penipuan. Kita dapat mengatasi ini dengan memisahkan produsen dan konsumen kita — menyisipkan layanan di tengah yang menyerap penulisan sambil memungkinkan pembaca independen untuk mengonsumsi dengan kecepatan mereka sendiri.
Hari ini kami meluncurkan Cloudflare K2 dalam beta publik untuk mengatasi masalah ini. K2 adalah primitif streaming acara tahan lama di Platform Pengembang. Anda mengirim acara ke aliran K2, yang menyimpannya sebagai log yang diurutkan. Konsumen dapat membacanya dengan berbagai cara, misalnya dengan membagi pembacaan di sekelompok konsumen, atau mengirimkan semua pesan ke semua konsumen. Ini sepenuhnya tanpa server, diskalakan ke sejumlah besar data, dan mendukung retensi jangka panjang, sehingga bahkan periode downtime konsumen yang lama tidak kehilangan data.
Di bawah tenda, K2 mengimplementasikan log tahan lama yang dipartisi di atas penyimpanan objek R2, yang memungkinkannya untuk diskalakan ke volume penyimpanan yang sangat besar. Jika Anda siap untuk memulai, Anda dapat membuat aliran pertama Anda dalam hitungan detik dengan mengikuti panduan di sini. Kami pertama kali membangun K2 karena kami membutuhkan buffer tahan lama di tepi, awalnya untuk berfungsi sebagai lapisan injeksi untuk Basin Pipelines. Arsitektur unik kami berarti kami sering tidak dapat menjalankan perangkat lunak sistem terdistribusi tradisional seperti Apache Kafka, dan perlu memikirkan kembali bagaimana sistem ini dibangun dan dioperasikan.
Dalam merancang sistem buffering tahan lama yang menjadi K2, kami memutuskan untuk mengandalkan primitif status kuat yang sudah kami miliki: R2. Sistem penyimpanan objek seperti R2 menggabungkan penyimpanan yang sangat tahan lama (11 9s!) dengan API yang sangat konsisten. Manfaat sekunder adalah memisahkan komputasi dan penyimpanan, yang berarti masing-masing dapat diskalakan secara independen. Ini memungkinkan kami untuk menyimpan sejumlah besar data historis dengan biaya rendah.
Sumber: Hacker News · Diringkas oleh HeadlinesBriefing