finds.dev← search

// the find

mefellows/muxy

★ 829 · Go · MIT · updated Jan 2021

Chaos engineering tool for simulating real-world distributed system failures

Muxy is a chaos proxy that sits between your app and its dependencies, injecting latency, mangling TCP packets, corrupting HTTP responses, and dropping connections. It operates at layers 4, 5, and 7 via a plugin architecture configured through YAML. This is for backend engineers who want to test circuit breakers and retry logic without waiting for production to fall over.

The multi-layer approach is genuinely useful — most chaos tools pick one level, but being able to combine TCP-level packet corruption with HTTP-level status code overrides in the same config file catches failure modes that single-layer tools miss. The matching rules on HTTP middleware (regex on method, path, host) mean you can target specific endpoints without poisoning everything. The plugin architecture via Plugo means you can wire in custom middleware without forking the core. Docker support with --privileged for the network shaper makes it practical to use in CI without touching the host network stack.

The project has been dead since January 2021 — five years of zero commits means it's running on Go dependency versions that predate modules properly and uses Godeps, which is a pain to work with on modern Go. The network shaper requires root and only works on Unix, so you can't use it on Windows or without privilege escalation, which kills a lot of CI environments. It's stateful and explicitly cannot run in parallel with other tests, which is a real problem for any test suite that tries to parallelize. Compared to what Toxiproxy (Shopify) offers today, the feature set here is narrower and the tooling is significantly less mature — Toxiproxy has a REST API and proper client libraries; Muxy has a YAML file.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →