I have a system that writes some rows to Redshift. As soon as it's done (using the JDBC, so as soon as the line of code finishes), we send an id to a queue and another system picks up this id and reads these rows and related rows from Redshift.
This reading usually happens in the same second. The problem is, about 10% of the time it can't find the data that was (apparently) just written. The data is definitely there. Reprocessing these items at a later date gains different (correct) results.
So, my question is does Redshift guarantee immediate data consistency or does our system simply have to wait before reading? And if it has to wait, for how long?