Time flies like an arrow; fruit flies like a banana. -Groucho Marx
Did Josh and Mario submit an abstract just so they could quote Groucho Marx? Would it be so wrong if they did? You may never know! And that, is unfortunately, how it sometimes feel when trying to reason about, and _test_, asynchronous control flow in our code: you. may. never. know. Asynchronous control flow is not the problem here, of course. We use asynchronous control flow all over our systems to decouple components in our system. Spring makes this easy through reactive programming, messaging, easy threading facilities, Kotlin coroutines, and more. Temporal decoupling is _good stuff_ (TM), but it can make testing, and reasoning about, control flow a lot more difficult. Join Spring Developer Advocates Josh Long (@starbuxman) and Mario Gray (@MarioGray) for this test-tastic tour of techniques to tame time in the wild and wonderful world of Springdom.
(And, yes. Yes they did. But come anyway, it’ll be fun!)