EtherMium.com and IDEX employ a similar approach, however, there are significant differences.

Market Orders

IDEX does not allow market orders. Due to the structure of their smart contract the user can only trade one order at a time. The client has to choose specific orders to trade against and cannot simply send a request for a significant quantity like on a centralized exchange. For this reason, quite often the user when trading will receive an error message telling them "The order has been traded already.". It can be quite frustrating when the user tries to trade a popular token and between the user pressing BUY/SELL and signing the transaction in MetaMask someone else has already taken the order.

Multiple signatures for the same trade

Secondly, when the user tries to buy or sell a big order that requires trading against multiple opposite orders, the user is expected to sign a transaction for each opposing order! So for instance, if you want to buy 1 000 000 tokens and to do that you have to trade ten orders, the system will make you press the "Confirm" button ten times in your MetaMask. Combine that with the possibility of competing for the same orders with other traders and the process can be lengthy and frustrating.

Did this answer your question?