Hi! From what I understood - you don’t really need to process the whole history of the blockchain, sp there’s no need to process every block and every transaction, because if you have, for example, a list of 10 addresses - then you would process 21K blocks and 15K transactions every epoch just to find maybe 1 or 2, or even 0 transfers to your addresses of interest.
Instead, you can directly poll summaries for each of the addresses, using method: http://cardanoexplorer.com/api/addresses/summary/DdzFFzCqrht2WKNEFqHvMSumSQpcnMxcYLNNBXPYXyHpRk9M7PqVjZ5ysYzutnruNubzXak2NxT8UWTFQNzc77uzjQ1GtehBRBdAv7xb
So you can configure the poll-time as you wish (for example once a minute) and then just iterate thru all addresses and query a summary for each one, and see if there’re any new transactions. This way you will only be processing the information of direct interest to you, and you can store in the database the last known number of transactions for each address, or an ID of the last known transaction.
But if at some point you will need to have a history of the blockchain processed, or some blocks-metadata collected - then the way you have described it is the only one, afaik, for now.