From the below quote, I struggle to understand whether the propagation of a transaction to global secondary indexes (GSIs), streams, and backups happen in parallel, or is sequential.
Once a transaction completes, the changes made within that transaction are propagated to global secondary indexes (GSIs), streams, and backups.
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html
Hence my question: Is a dynamodb stream event raised only after all GSIs are rebuilt(replicated) or such a statement is false?
In other words, can I be sure that I can find a projection for an item in some GSI if I query the GSI with the corresponding keys, immediately after I receive a stream event for its INSERT
To give some context - I am working on a concept of a procedure that can span across multiple lambdas, and each lambda is doing only one transaction. Prior to starting the procedure I know exactly how many transactions I should expect, and I am counting them with the help of dynamo streams and atomic counters, this way I can determine when a procedure has finished(edit Please do not redirect me to using step functions, I know their great potential but my stack will explode :))
However, if the above quote from AWS does not guarantee GSI replication prior to issuing the dynamo stream event, I am a bit screwed, because I can not immediately start other procedures that rely on the data inserted but want to query for it via a GSI...
Thanks!
edit: After helpful discussions and some more digging, I found this aws article that provides me with further understanding, particularly the Best practices for working with DynamoDB Streams section