I&#x27;ve come to simply expect that any code that deals with time is going to be hard to build abstractions on top of, whether it be test cases or workflows. The number of ways in which we use time is combinatorially large.<p>When introducing awareness of time into a system, I slow development down by an order of magnitude until I have workflows built up to deal with all the edge cases. The workflows have to be iterated on manually and slowly so the domain model can emerge.