Event-Driven Systems