Some things are just not easy to remember and looking them up, saving a bookmark to wherever, is just tedious. So how about saving a bookmark and at the same time automating the calculation? Well this is why I started a file which hopefully grows with all those little formulas, using the lisp docstrong to provide a note and a link to why this is relevant.
First thing, when configuring a circuit breaker we need to set a size for how many parallel requests we want to accept, luckily Netflix has a nice formula for this, and even more lucky it is documented on the yammer tenacity repository.
(defun hysterix/thread-pool-size (p99 reqs) "calculate and insert the thread pool size for a hysterix circuit based on the p99 and the requests per secound see https://github.com/yammer/tenacity#configuration-equations for more details" (interactive "nP99 in ms: nRequests per sec: ") (let ((thread-pool-size (ceiling (* (/ (float p99) 1000.0) reqs)))) (insert (format "%d" thread-pool-size))))
All I need to do now when configuring a circuit, hit M-x hysterix/thread-pool-size and insert the 99th percentile for request latency I can easily get from the service monitoring, as well as the requests per second. If ever in doubt I can use C-h f hysterix/thread-pool-size to get the documentation.