Thanks again for your reply Vikram.
I will try to be more specific.
We are maintaining in a mysql DB every balance in the blockchain.
Since blockchain_list_address_balances was not available by the time we started, we maintain the balances looking for every deposit/withdraw operation inside every transaction.
For every deposit we add the amount to the corresponding balance, and for every withdraw we subtract.
So, when we find a fork we go back to the common ancestor block applying withdraw and deposits (from the forked chain) the other way round. (subtract for deposits, add for withdraw)
The question is.
Is this the correct way to handle a chain fork?
What is the bitshares_client doing when he has to revert a fork?
ps: we will be changing to blockchain_list_address_balances/blockchain_list_address_transactions as soon as they are available