Cardano chain blocks finality determination

Hello everyone, I’m new to Cardano and have been exploring ways to query finalized blocks (txs) from the Cardano chain. I’ve looked into tools like dbSync and dcSpark carp indexer, wondering if they exclusively store finalized blocks in parallel databases and how they retrieve this data from the Cardano chain. I’m uncertain if waiting for a specific duration is the correct approach.

Could someone provide insights, explanations, or share relevant code for a better understanding?
Pointers to cardano protocol finality implementation would be great, or some examples from other SCs on how to work with cardano tx and process only the ones that are finalized.

I’m aware of the Cardano protocol’s chronological nature, where transactions older than a day (or a certain block count " Rollbacks of more that 2160 blocks are strictly prohibited by the protoc" ) are considered part of finalized blocks. Is there a method to query existing finalized transactions without waiting for them to age?
Do applications have to wait for a day if they want to work with finalized data?

I hope my question is clear and appreciate any guidance.