To rodzaj pytania pojawia się od czasu do czasu - o ile wiem, jedynym całkowicie niezawodnym sposobem jest wykonanie tego, co opisałeś, przechowywanie zaktualizowanych identyfikatorów w jakiejś tabeli w pierwszym procesie i oznaczanie ich jako przetworzonych w drugim. Zasadniczo jest to ponowne wymyślenie kolejki wiadomości w bazie danych. Całkiem dobrze opisałeś, jak naiwne rozwiązanie pomija aktualizacje.
Po zaktualizowaniu wierszy znacznika procesu importowania można to zrobić dość łatwo, a nawet zaimplementować za pomocą wyzwalaczy w tabeli danych. Jeśli masz tylko jeden proces konsumencki, wystarczy delete from updated_item returning item_id
aby uzyskać listę aktualizacji. Wygląda na to, że jest to o wiele bardziej skomplikowane, ale IMHO tak nie jest, naprawdę. Funkcje, takie jak możliwość monitorowania, jak duże są zaległości, pojawiają się również za darmo.