Keeping wallet addresses outside bitcoin core I'm trying to build a good security for my online bitcoin based application. Is something like this possible?

send_bitcoin(address)
create_address()
sweep_balances()
       +
       |
       |
       v         New transactions
+-------------+  &lt;----------------   +--------------+
|             |                      |              |
| Wallet keys +---------------------&gt;+ Bitcoin core |
|             |                      |              |
+-------------+   Submit signed tx   +--------------+



The "Wallet keys" will be my hot wallet. There will be another wallet store which would be used for cold storage. The "bitcoin core" will be some trusted public node that I don't control.

Does using this architecture have any disadvantages over running a full bitcoin core to keep addresses?

I need to get callbacks for new transactions on the list of addresses in my store, that is not managed by bitcoin core. Is it possible using this method?

My reason is that running a full "bitcoin core" takes up too much computing resources &amp; disk which is expensive on cloud and by doing this I can avoid having to run and maintain a bitcoin node. I can submit a signed transaction to any trusted node.

Thanks.
Does using this architecture have any disadvantages over running a full bitcoin core to keep addresses?


Yes.


  The "bitcoin core" will be some trusted public node that I don't control.


That is a huge disadvantage.

As Satoshi Nakamoto wrote:


  What is needed is an electronic payment system based on cryptographic proof instead of trust,
  allowing any two willing parties to transact directly with each other without the need for a trusted
  third party.


(my emphasis)

Every time someone tries to undo this they are kicking the founder of Bitcoin in the teeth!



Other references


Thin Client Security