A client is a layer of various components like load balancers and stats recorders, but they're also all configurable. Only using the expressiveness of scala could such a data structure be created to compose all of these pieces, yet still keep them modifiable and type-safe.
https://github.com/twitter/finagle/blob/master/finagle-core/...
https://github.com/twitter/finagle/blob/master/finagle-core/...
http://twitter.github.io/finagle/guide/Clients.html
A client is a layer of various components like load balancers and stats recorders, but they're also all configurable. Only using the expressiveness of scala could such a data structure be created to compose all of these pieces, yet still keep them modifiable and type-safe.