Itu tergantung pada kasus penggunaan Anda. Praktik umum adalah menangani ini pada lapisan aplikasi. Pada dasarnya yang Anda lakukan adalah mereplikasi tindakan satu db ke yang lain. Jadi misalnya jika Anda menyimpan satu entri di postgres, Anda melakukan hal yang sama di elasticsearch.
Namun jika Anda melakukan ini, Anda harus memiliki sistem antrian. Entah antrian terintegrasi pada lapisan aplikasi Anda, mis. jika penyimpanan di elasticsearch gagal maka Anda dapat memutar ulang operasi tersebut. Selain itu pada sistem antrian Anda, Anda akan menerapkan mekanisme pelambatan agar tidak membanjiri elasticsearch. Pendekatan lain adalah dengan mengirim peristiwa ke aplikasi lain (mis. logstash, dll.), sehingga pembatasan dan persistensi akan ditangani oleh sistem itu dan bukan aplikasi Anda.
Pendekatan lain adalah https://www.elastic.co/blog/ logstash-jdbc-input-plugin . Anda menggunakan sistem lain yang "melakukan polling" database Anda dan mengirimkan perubahan ke elasticsearch. Dalam hal ini logstash sangat ideal karena merupakan bagian dari tumpukan ELK dan memiliki integrasi yang hebat. Periksa ini juga https://www.elastic. co/guide/en/logstash/current/plugins-inputs-jdbc.html
Pendekatan lain adalah dengan menggunakan NOTIFY mekanisme postgres untuk mengirim acara ke beberapa antrian yang akan menangani penyimpanan perubahan dalam elasticsearch.