| Author here. Good point. For those that are curious, parent is referring to the following situation: 1. Transaction A starts, its before trigger fires, Row 1 has its updated_at timestamp set to 2023-09-22 12:00:01. 2. Transaction B starts a moment later, its before trigger fires, Row 2 has its updated_at timestamp set to 2023-09-22 12:00:02. 3. Transaction B commits successfully. 4. Polling query runs, sees Row 2 as the latest change, and updates its cursor to 2023-09-22 12:00:02. 5. Transaction A then commits successfully. A simple way to avoid this issue is to not poll close to real-time, as the order is eventually consistent. Perhaps a more robust suggestion would be to use a sequence? Imagine a new column, `updated_at_idx`, that incremented every time a row was changed. |