Ini semacam pertanyaan muncul dari waktu ke waktu-- sejauh yang saya tahu, satu-satunya cara yang sepenuhnya dapat diandalkan adalah melakukan apa yang telah Anda jelaskan, menyimpan ID yang diperbarui di beberapa tabel dalam proses pertama dan menandainya sebagai diproses di yang kedua. Pada dasarnya ini adalah menciptakan kembali antrian pesan dalam database. Anda telah menjelaskan dengan cukup baik bagaimana solusi naif akan melewatkan pembaruan.
Memiliki proses impor menandai baris yang diperbarui dapat dilakukan dengan cukup mudah, atau bahkan diimplementasikan menggunakan pemicu di tabel data Anda. Jika Anda hanya memiliki satu proses konsumen, maka yang harus dilakukan adalah delete from updated_item returning item_id
untuk mendapatkan daftar pembaruan. Kedengarannya jauh lebih rumit tetapi IMHO tidak, sungguh. Fitur-fitur seperti dapat memantau seberapa besar backlog juga muncul secara gratis.