Real time information about what can be sent and received through each channel of the Lightning network is not available by default so when sending a multi-hop payment wallets blindly try one route after another in hope it will work out eventually.
While this approach just works more often than not it can be annoying for end users since it sometimes results in failed payments because a payer may attempt an amount which can’t be delivered under current network conditions but there is no way to know that beforehand.
Joint node improves on this by providing a special Arbitrage API, essentially this is a websocket endpoint which broadcasts real time send/receive balances for each public peer a Joint node currently has.
Once this API is integrated traders at each of the connected exchanges would know exactly how much can be transferred off-chain at any given time. Bitcoin Lightning Wallet also uses Arbitrage API which simplifies an off-chain deposit task, here is how it works: