I have seen all kinds of explanations of ABI. But I am still wondering who would use it. As per my current understanding it should be wallet apps using it. Or is it the node app? Can someone please confirm?
An ABI is the interface to a contract on the blockchain. Any meaningful interaction with a contract uses the ABI.
When you write a contract, you want to tell others what functions you provide and how they can interact with your contract: you do this by providing an ABI.
It's quite similar when you have any code that you want others to use, and you publish an API.
A wallet or any frontend UI can use the ABI to interact with the contract. Server backend code, such as nodejs can also use the ABI. It depends what code wants to read or write data to the contract.