Netflix / ribbon

Ribbon is a Inter Process Communication (remote procedure calls) library with built in software load balancers. The primary usage model involves REST calls with various serialization scheme support.
Apache License 2.0
4.58k stars 1.24k forks source link

Technical Debt: Cyclic dependency between LoadBalanceStats and ServerStats #465

Open jbpextra opened 4 years ago

jbpextra commented 4 years ago

There exists a cyclic dependency between classes LoadBalancerStats and ServerStats that has caused in the past up to 12% productvity loss.

We at Skuld.ai have developed a tool that can find cycles that are especially negative for the development health status. It is widely backed by research that the existence of cyclic dependencies has the potential to create ripple effects during development in an exponential way. We have found this cyclic dependency has a detrimental effect mounting to an approximate 4.5% productivity loss. This figure is based on changed made in the past, which experienced a negative impact in varying degree with a record high of a 12% productivity loss in @elandau’s 8d9d700b584feeaf6a64ba39a0265a256a090f66

jbpextra commented 3 years ago

@elandau Can you (or anyone else for that matter) confirm that this cyclic dependency has been problematic for you in the past?