Skip to content

Latest commit

 

History

History
 
 

hystrix-clj

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Hystrix Clojure Bindings

This module contains idiomatic Clojure bindings for Hystrix.

Binaries

Binaries and dependency information for Maven, Ivy, Gradle and others can be found at http://search.maven.org.

Example for Maven:

<dependency>
    <groupId>com.netflix.hystrix</groupId>
    <artifactId>hystrix-clj</artifactId>
    <version>x.y.z</version>
</dependency>

and for Ivy:

<dependency org="com.netflix.hystrix" name="hystrix-clj" rev="x.y.z" />

and for Leiningen:

[com.netflix.hystrix/hystrix-clj "x.y.z"]

Usage

Please see the docstrings in src/com/netflix/hystrix/core.clj for extensive usage info.

TL;DR

You have a function that interacts with an untrusted dependency:

(defn make-request
  [arg]
  ... make the request ...)

; execute the request
(make-request "baz")

and you want to make it a Hystrix dependency command. Do this:

(defcommand make-request
  [arg]
  ... make the request ...)

; execute the request
(make-request "baz")

; or queue for async execution
(queue #'make-request "baz")

Event Stream

A Clojure version of hystrix-event-stream can be found at https://github.com/josephwilk/hystrix-event-stream-clj