What if you want to compose an action on a balance with something else? (That is what the OP is about)
Also, with a queue, you've moved the shared state elsewhere, namely, into the queue.
Also, with a queue, you've moved the shared state elsewhere, namely, into the queue.
There are lots of standard shared queues you can pick from that have been fully regression tested. That's almost always better than mixing concurrency in with your business logic.