Testing distributed systems under hard failures like network partitions and instance termination is critical, but it’s also important we test them under less catastrophic conditions because this is what they most often experience. Comcast is a tool designed to simulate common network problems like latency, bandwidth restrictions, and dropped/reordered/corrupted packets.
It works by wrapping up some system tools in a portable(ish) way. On BSD-derived systems such as OSX, we use tools like
pfctlto inject failure. On Linux, we use
tc. Comcast is merely a thin wrapper around these controls.
TFW you come up with the perfect name for your open source project ✨