Kuvasz-streamer adalah proyek pengambilan data perubahan (CDC) sumber terbuka yang berfokus secara eksklusif pada Postgres. Ini terintegrasi erat dengan Postgres Logical Replication untuk memberikan replikasi kinerja tinggi dan latensi rendah.
Fitur
Ringan
Kuvasz-streamer adalah layanan ringan yang ditulis dalam Go yang tidak memiliki ketergantungan dan tidak ada antrian. Jalankan sebagai layanan sistem atau dalam wadah Docker. Itu dapat berjalan dalam mode deklaratif penuh di mana peta konfigurasi disimpan dalam file YAML hanya-baca dan tidak ada file yang ditulis ke disk. Mode ini cocok untuk konfigurasi berbasis pipeline CI/CD dan penerapan Kubernetes. Mode interaktif yang didukung database didukung di mana antarmuka web dapat digunakan untuk mengubah konfigurasi pemetaan saat runtime.
Performa tinggi
Kuvasz-streamer diukur pada 10K tps dengan latensi kurang dari 1 detik. Ia menggunakan protokol Postgres COPY untuk melakukan sinkronisasi awal dan protokol replikasi logis nanti. Ini membuka banyak koneksi ke database tujuan dan mengelompokkan pembaruan ke dalam transaksi terpisah.
Dan agar tidak membebani server database produksi, ini juga mendukung pembatasan kecepatan global.
Sudah termasuk baterai
Kuvasz-streamer mengelola publikasi dan slot replikasi pada database sumber, menambahkan dan menghapus tabel yang dikonfigurasi dari publikasi secara otomatis. Itu juga melakukan sinkronisasi penuh setiap kali tabel baru ditambahkan.
Fleksibel
Beberapa model propagasi tabel didukung: clone, history dan append-only.
Kasus penggunaan
Kuvasz-streamer dapat digunakan untuk konsolidasi data, peningkatan versi utama, dan kasus lainnya.
Konsolidasi database layanan mikro
Dalam arsitektur layanan mikro, setiap layanan memiliki databasenya sendiri. Kuvasz-streamer menggabungkan semua database dari semua layanan ke dalam satu gudang data. Skema di gudang data tidak harus mengikuti skema yang sama dengan layanan aslinya.
Konsolidasi database multipenyewa
Dalam lingkungan multi-penyewa yang sensitif, setiap penyewa dapat diberi database terpisah untuk memastikan bahwa tidak terjadi penyerbukan silang data. Kuvasz-streamer kemudian dapat digunakan untuk menggabungkan semua data dalam satu tabel dengan pengidentifikasi penyewa untuk memudahkan pelaporan.
Optimalisasi kinerja basis data
Dalam arsitektur layanan mikro pada umumnya, data riwayat dijaga seminimal mungkin untuk memberikan waktu kueri yang cepat dan latensi rendah kepada pengguna akhir. Namun, data historis penting untuk AI/ML dan pelaporan. kuvasz-streamer
menerapkan strategi tanpa penghapusan pada beberapa tabel yang tidak dapat disebarkan DELETE
operasi. Contoh penggunaan mencakup tabel transaksi dan tabel riwayat audit.
Peningkatan versi utama Postgres
Memutakhirkan versi utama Postgres adalah tugas yang memakan waktu dan memerlukan waktu henti yang besar. Kuvasz-streamer dapat digunakan untuk menyinkronkan database antara berbagai versi Postgres dan melakukan peralihan cepat.