ANN superv.async 0.2.1 - Erlang-inspired error handling for core.async

95 views
Skip to first unread message

Christian Weilbach

unread,
Oct 24, 2016, 7:01:35 PM10/24/16
to clo...@googlegroups.com, clojur...@googlegroups.com
After more than a year of exploration of different approaches to get
error handling right in the Erlang sense with core.async, I am finally
confident enough to release it as superv.async. I have tested it a lot
with replikativ in a distributed system, but I wouldn't consider it
production ready yet.

I have written a blog post about the experiences and different
approaches here:

https://whilo.github.io/org/2016/03/10/error-handling1.html

From the README:

Let it crash. The Erlang approach to build reliable systems.

Errors happen, and proper error handling cannot be bolted on top of
subsystems. This library draws on the Erlang philosophy of error
handling to help building robust distributed systems that deal with
errors by default.

This is a Clojure(Script) library that extends core.async with error
handling and includes a number of convenience functions and macros. This
library is a fork of full.async. The original attempt to merge this work
with it failed due to the limitations of a dynamic binding approach. The
fork became reasonable, because full.async mostly deals with convenience
functions, but it is not as radically focused on proper error handling.
Since the error handling cannot happen through a transparent dynamic
binding, some convenience is lost in superv.async as you need to carry
around the supervisor lexically. If binding support comes to
ClojureScript for asynchronous contexts the projects might merge again.
The binding approach also has a performance penalty though. Since the
boundary of both error handling libraries is the exception mechanism and
core.async channels, they still compose, but supervision will not
compose with full.async contexts.

https://github.com/replikativ/superv.async

I hope you find it useful and feedback is very much appreciated.

Christian

signature.asc
Reply all
Reply to author
Forward
0 new messages