Earlier quoted context omitted.
That’s exactly how online top-ups, and credits/refunds, work with the Oyster card system. In the old days you’d nominate a specific station, and the credit would be transferred to the card the next time you tapped in at that station. But now days I don’t think you need to do that: presumably it maintains the balance primarily on the server side now rather than on card.
I think Oyster cards are still stored-value based, but I suspect that either the backend servers and connections are now fast enough to poll pending top-ups in real time, or they just fan out the pending top up dataset to all turnstiles. I remember using that feature in the SF bay area, and while it took a day for the top-up to actually propagate to all readers, it even worked on buses, so they must be uploading that…
But yes, for speed/redundancy they are still probably using the stored value balance too.