Event Driven Software
This is around real time event loops, coroutines, finite-state machines, and real time operating systems (RTOS) that use priority based preemptive primitives, rate monotonic scheduling, and other design patterns to create long running event based programs