Зависи от вашия случай на употреба. Обичайна практика е това да се обработва на приложния слой. По принцип това, което правите, е да възпроизвеждате действията на една db към другата. Така например, ако запазите един запис в postgres, вие правите същото в elasticsearch.
Ако направите това обаче, ще трябва да имате въведена система за опашка. Или опашката е интегрирана във вашия приложен слой, напр. ако запазването в elasticsearch е неуспешно, можете да повторите операцията. Освен това във вашата система за опашки ще внедрите механизъм за дроселиране, за да не претоварите elasticsearch. Друг подход би бил да изпращате събития към друго приложение (напр. logstash и т.н.), така че дроселирането и постоянството ще се обработват от тази система, а не от вашето приложение.
Друг подход би бил този https://www.elastic.co/blog/ logstash-jdbc-input-plugin . Използвате друга система, която „анкетира“ вашата база данни и изпраща промените на elasticsearch. В този случай logstash е идеален, тъй като е част от стека ELK и има страхотна интеграция. Проверете и това https://www.elastic. co/guide/en/logstash/current/plugins-inputs-jdbc.html
Друг подход е да използвате NOTIFY механизъм на postgres за изпращане на събития до някаква опашка, която ще обработва запазването на промените в elasticsearch.