Research doc: ‣.
Currently, Connext based applications are directly connected to a single router. Not only does this pose a censorship risk, but this directly exposes users to a single router's liquidity limits. A way we can resolve this is by using an auction mechanism to allow routers to "bid" to fulfill forwarding requests.
The basic flow looks like:

chan_runAuction to collect quotes from routers and return the best price after accounting for potential channel deployment costs.
amount, senderPublicIdentifier, senderAssetId, senderChainId, receiverPublicIdentifier, receiverAssetId, receiverChainId.routerPublicIdentifier, swapRate, totalFee.publishStartAuction to node messaging service.
PUB_ID.PUB_ID.start-auction with request data. Publish unique INBOX for collecting responses.onReceiveAuctionMessage to node messaging service.
INBOX, unwrap results and call provided callback.onReceiveStartAuction to router messaging service.
runAuction to the engine main index.
publishStartAuction with provided data.onReceiveAuctionMessage to listen on unique INBOX and collect responses for 5 seconds (will tweak and tune this number). Maybe something like wait for 5 responses or 5 seconds? Watch out for race conditions of setting listener after message is already sent.onReceiveAuctionMessage return an off method.