toxiproxy icon indicating copy to clipboard operation
toxiproxy copied to clipboard

Use Case Descriptions

Open sirupsen opened this issue 7 years ago • 2 comments

We should gather use-cases from people around the community to help guide further Toxiproxy development. This will help us find out what people use, what they don't use, and what the major sources of frustration (or happiness is).

@xthexder

sirupsen avatar Jan 04 '17 14:01 sirupsen

All in all, Toxiproxy has been a breeze to setup, use and deploy within our environments so thanks a bunch for that ❤️ . The option to use a HTTP call or CLI has made transitioning between local testing and automated CI very simple and it's a great feature to have from the get go.

Regarding the roadmap, is Toxiproxy only envisioned to be a TCP chaos proxy? One use case I am currently looking at is how our application behaves when a disk is saturated. It's horrible but we are still using a shared filesystem for a handful of things and I'd like to be able to simulate scenarios where this is slow. Right now, I've got test coverage for if it is completely unavailable but emulating slowness is something that is much more difficult and the only options I've found have been limiting our other tests too which is less than ideal.

To be honest though, really unsure how this would work if you were interested but interested to hear your thoughts.

jacobbednarz avatar Jan 04 '17 21:01 jacobbednarz

A use case that has come up recently is being able to control behavior depending on the client involved and the direction of the connection.

An example of where this is useful is applying latency to only specific connections between upstream. This can emulate real-world latencies more accurately where multiple datacenters have distinct latencies among each-other, which could be represented as a matrix, e.g:

|-----------------------------------|
|        | node 1 | node 2 | node 3 |
|--------+--------+--------+--------|
| node 1 |        |  20ms  | 60ms   |
| node 2 |  15ms  |        | 100ms  |
| node 3 |  65ms  |  20ms  |        |
|------------------------------------

Not only that, but there are situations where asymmetrical latency or packet loss can occur, so knowing directionality is important.

This needs (probably) minor changes in toxiproxy to expose the client and upstream address in the ToxicStub, and some custom work for adding the more complex configurations to toxics.

lgo avatar Dec 10 '17 00:12 lgo