One advantage to doing this in Redis was that our events aren't just "run a program" (though we can do that); we can also push onto a queue that consumers BLPOP from, or send a pubsub message to a bunch of consumers, or increment counters.
later
Makes you think, it's nice that Redis is minimal, but a core feature that might work really nicely with Redis is timer support.