If you need to also be notified on DELETEs and delete the respective record in Elasticsearch, it is true that the Logstash jdbc input will not help. You’d have to use a solution working around the binlog as suggested here
However, if you still want to use the Logstash jdbc input, what you could do is simply soft-delete records in PostgreSQL, i.e. create a new BOOLEAN column in order to mark your records as deleted
. The same flag would then exist in Elasticsearch and you can exclude them from your searches with a simple term
query on the deleted
field.
Whenever you need to perform some cleanup, you can delete all records flagged deleted
in both PostgreSQL and Elasticsearch.