how to do address callbacks? I'm building a webapp that needs to update account info and send a message when an account's address gets a deposit, and/or confirm withdrawals. 

I'm not sure what the best way to do this is. Would you have a separate application keep sending API calls to blockchain.info until a new transaction comes through? Then initiate the right callback function?

Using blockchain.info seems flimsy since it's a 3rd party service. How would you do this monitoring the bitcoin network? It seems like using any bitcoin client would rely on some commandline action. Would the best way be continuing to send the commandline action out until the returned data is different, and then initiate the callback? Is there a better design pattern that I am missing?
If you rely on bitcoind and JSON-RPC API you could try launching daemon with -walletnotify option.

bitcoind -daemon -waletnotify="process-txn.sh %s"


This will call process-txn.sh with transaction id on the input. Then you can query the daemon for transaction details.