Why are Event-Driven Systems Hard?