[erlang-questions] [ANN] Fuse release 1.0.0

Jesper Louis Andersen jesper.louis.andersen@REDACTED
Sat Apr 19 22:30:07 CEST 2014


Fuse is an application which implements the so-called circuit-breaker
pattern for Erlang. The goal is to "do it right™" by having ample amounts
of documentation, proper EDoc, a tutorial, proper instrumentation,
alarm_handlers, event hookup points, and a CT test suite with good base
coverage.

A circuit breaker is used to guard against cascading subsystem failure in a
larger project. If a subsystem fails, the circuit breaker opens. Rather
than calling the failing subsystem, we just return immediately with
information about the circuit breaker being open. The consequences are:

* No resource buildup due to timeouts
* Low latency in responses
* The ability to act differently when we know the system is not merely
slow, but failing.

After a while, the circuit automatically heals.

Because fuse will be critical infrastructure it comes with full Quviq
Quickcheck models which tests all possible concurrent interleavings through
the PULSE scheduler. Thomas Arts has been helpful with lots of small hints
on how to make this work out. The only thing you have to trust is that
erlang:send_after/3 works as intended. As part of the development, millions
of sequential and parallel invocations were run. While this does not
guarantee no bugs, the bar has been set considerably higher than in most
other projects.

More is in the projects README.md file:

https://github.com/jlouis/fuse
 As well as all the background information and such. Issues and Patches are
very welcome!


-- 
J.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140419/27a7952e/attachment.htm>


More information about the erlang-questions mailing list