Notificando alterações postgres no aplicativo java

Problema

Estou construindo umbanco de dados postgres por algumas centenas de milhares de produtos. eu vouconfigurar um índice (Solr ou talvez ElasticSearch) para melhorar os tempos de consulta para consultas de pesquisa complexas.

O ponto agora é como deixar o índice sincronizado com o banco de dados?

No passadoEu tinha um tipo de aplicativo que consultava o banco de dados periodicamente para verificar se há atualizações isso deveria ser feito, mas eu teria umtempo de estado do índice desatualizado (da atualização do banco de dados ao pull de atualização do índice).

Eu preferiria uma solução na qual o banco de dados notificaria meu aplicativo (aplicação java) que algo foi alterado dentro do banco de dados e, nesse ponto, o aplicativo decidirá se o índice precisa ser atualizado ou não. Para ser mais preciso, eu criaria um tipo de estrutura de produtor e consumidor para que a réplica recebesse notificações do postgres de que algo mudou, se isso for pertinente para os dados indexados, ele será armazenado em uma pilha de atualizações a fazer. O consumidor consumiria essa pilha e criaria os documentos para serem armazenados no índice.

Soluções possíveis

Uma solução seria escrever um tipo de endpoint de réplica em que o aplicativo se comportaria como uma instância postgres que está sendo usada para replicar os dados do banco de dados original. Alguém tem alguma experiência com essa abordagem?

Que outra solução eu tenho para esse problema?

questionAnswers(3)

yourAnswerToTheQuestion