The user will have a uniqe order-id, so i was thinking if i could log that, plus his reciving adress and the amount he sent.
Then i would get notification when his coins arrive to my binance account and then just send him back 5% less ETH if i charged a 5% fee.
But he still would not get any notification that i have recived his coins while he is waiting or me to complete the exchange.
I like you 1-4 description, thats exactly how i want it to work.
Do i need a node for each coin, like if i have 50 different coins, do i need a node for each one?
And what could that cost?
You should first confirm if Binance allows generating multiple addresses but as I said, I don't believe they do and even if they did, you will probably need to deal with the API limits as well, which doesn't help either.
The approach is correct though.
You create an address for the user and link it with the OrderID -> Wait until the address receives a transaction -> check for the amount -> wait for a few confirmations -> notify the user.
And yes, you would need different nodes for different coins. But if you're going to deal mainly with evm compatible networks then I would suggest you look into Alchemy, Infura, and Quicknode. They all have free tiers (there are limits on how many requests you can make, but it's still good) so maybe you can start with that at first and then upgrade.
As for your comment above, then yes, an instant exchange like Sideshift may be easier to develop and maintain compared to a CEX, but you should still take security seriously.