These are multiple factors that would come into play. I can't bet 1000 TPS, but definitely much higher throughput than average. I have achieved transactions in three digits by playing with these factors in a private network.
- Consensus/ Engine used- PoA will always beat PoW in your case.
- Number of Nodes the lower the better! The more the number of nodes you have, the more difficulty in reaching consensus (probabilistically speaking), but you also lose resilience in the network. What if the only node you have just crashed or someone turns it off? Based on your infrastructure 2-3 could be optimum.
- Node/ server specs Depends on the use case and volume. You mentioned
transfer
event based off of ERC20, but volume matters too (only in terms of storage and not RAM actually). Anything with 2GB RAM on a linux machine should be fine. I used t3.medium on AWS (with a storage of 40GB, but storage depends on your volume).
But above all, these are the main spices the recipe:
Block Size The higher the block size, the more transactions you can pack in a single block. Technically, you would increase the block size by increasing the gas limit in the configuration file.
Block Time The lower the block time, the quicker the blocks will get mined. But if it is too low and your network has many nodes, then there could increse chances of stale transactions. I have used 5 secs, and it works and should work in your case too.