Hi clojurians, We publish our library for concurrent processing of data with core.async. named 'concurrently'
https://github.com/uzabase/concurrently <https://github.com/uzabase/concurrently> With 'concurrently', programmers can create shared process-pipelines backed by core.async and can share the pipelines safely/easily from multiple requester-threads. Shared pipeline can accepts requests from many requester-threads and handle the requests in shared concurrent pipeline of core.async and then split the calculated results to each requesters. Using core.async for creating shared pipeline causes many difficulties for programmers because: * Shared channels easily stack, because if some requester threads stop reading a channel for accidental exceptions, some data remain unread and nobody can write the channel. it might causes a shared pipeline stops (stacks) for waiting to write data to the unread channel. * You must carefully handle channels as they NEVER stack. * All input-data are put onto a same pipeline and you must SPLIT data from output of the shared pipeline in any way for returning the processed results to each requester-threads. 'concurrently' handles all the problems described above. Each requster-threads just pass input-data by calling a 'concurrently' functions. Shared pipeline will return a 'Job', then Each requster-threads can get all calculated results for the input-data by calling 'get-results' function on the job. No verbose tasks for protecting channels from accidental stack or splitting calculated results for each requesters. UZABASE is a company based on Japan that is processing/publishing financial data on SaaS applications, and uses Clojure language for many tasks. This 'concurrently' library is made for our streaming-data-processing tasks and already is used for over 1 year. Problems of this library are found and already are fixed while the long application on real tasks, So we decided to publish this library for many programmers. We hope that it is useful for someone. Thank you. Tsutomu YANO -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/clojure/47D5CA02-79AA-4267-9EFA-4B63D415957D%40me.com.