Order matching process start upon order arrival causes Denarius to be extremely underperformant due to Clojure's software transactional memory (see #16 ). We need to restore the previous implementation with a way of sleeping and restoring threads to save computation when no matchable exist on the book.
This could be done with the a core.async library. Where the infinite loop reads tokens sent by events modifying the order book.
Order matching process start upon order arrival causes Denarius to be extremely underperformant due to Clojure's software transactional memory (see #16 ). We need to restore the previous implementation with a way of sleeping and restoring threads to save computation when no matchable exist on the book.
This could be done with the a core.async library. Where the infinite loop reads tokens sent by events modifying the order book.