Da AWS documentazione :
A Kinesis data stream is an ordered sequence of data records. Each record in the stream has a sequence number that is assigned by Kinesis Data Streams
Non vedo alcuna connessione tra queste 2 frasi. Inoltre, la documentazione non specifica esplicitamente il tipo di ordinamento.
Dopo una piccola indagine, ho scoperto che se stiamo usando la libreria di produttori AWS (ad esempio, KPL
), l'ordine che la lib ha inviato correttamente ai record di Kinesis viene mantenuto quando si utilizza da Kinesis. Il problema è che questo ordine di record non garantisce di essere uguale all'ordine dei record che ho inviato a qualsiasi libreria.
Application -(1)> KPL -(2)> Kinesis
L'ordine è determinato dalla sequenza di record che è stata inviata con successo da KPL a Kinesis. (In caso di errori di rete, verrà inviato di nuovo un record da KPL, dopo l'invio di altri record).
Una definizione della parola a caso è qui :
Of or relating to an event in which all outcomes are equally likely...
La mia conclusione è che un'applicazione invia i record al kinesis in un ordine casuale, il che significa che non esiste alcun ordine. Nel caso in cui un'applicazione debba garantire qualsiasi tipo di ordine, deve creare la propria libreria e non usarne la.
Mi manca qualcosa qui?