Code to nowhere

Blog :: N. T. Rutherford

12 notes &

Why testing distributed systems is hard

Concurrent programming models are necessarily nondeterministic, because they must interact with external agents that cause events at unpredictable times. Nondeterminism has some notable drawbacks, however: programs become significantly harder to test and reason about. Parallel and Concurrent Programming in Haskell, Simon Marlow

You can (and should) still try and catch these situations with unit tests, especially if your code is modular and stateless, but it does make it harder.

Filed under testing concurrency distributed systems

  1. nruth posted this